Un fallo crítico al validar la IP de Python afecta a miles de programas

En muchas ocasiones surgen fallos de seguridad que ponen en riesgo los programas y dispositivos que usamos en nuestro día a día. En este caso nos hacemos eco de una importante vulnerabilidad que afecta a la validación de direcciones IP en Python, algo que afecta a miles de programas. Vamos a explicar en qué consiste este problema y cómo puede afectar a los usuarios.
Una vulnerabilidad en la validación de IP afecta a Python
Se trata de una vulnerabilidad crítica que afecta a la biblioteca estándar de Python. Afecta a la validación de direcciones IP, algo que ya ha ocurrido en la biblioteca netmask hace unos meses. El fallo ha sido registrado como CVE-2021-29921.
Concretamente afecta al módulo ipaddress de Python 3.x y se debe a un cambio que realizaron en 2019. Como decimos, hace unos meses vimos una serie de vulnerabilidades que afectaban a la máscara de subred. Ahora afecta también a esta biblioteca estándar de Python.
Esta vulnerabilidad provoca un análisis incorrecto de las direcciones IP por parte de la biblioteca estándar ipaddress. Este módulo se encarga de que los desarrolladores puedan crear fácilmente direcciones IP, redes e interfaces. Hay que indicar que una dirección IPv4 puede aparecer en formato decimal, entero, octal o hexadecimal, aunque lo más normal es que aparezca en el primer formato.
Aquí llega el problema con los ceros a la izquierda. Es lo mismo que ocurría con la biblioteca netmask. La manera en la que gestiona esa IP cambia al agregar un valor cero antes de la IP en formato decimal. Lo que ocurre con la vulnerabilidad de Python es que los ceros a la izquierda los descartaría.
