martes, 4 de mayo de 2021

Nueva vulnerabilidad a la hora de validar IPs en Python

Nueva vulnerabilidad en Python

      Ha aparecido una nueva vulnerabilidad que ha sido registrada como CVE-2021-29921, está vulnerabilidad critica afecta a la biblioteca estándar de Python. Como ya sucedió con netmask hace unos meses, el error reside en la validación de direcciones IP.

En este caso el error afecta al módulo ipaddress en las versiones de Python 3.8 a 3.10, este error viene debido a un cambio realizado en la versión 3.8.0a4 en el año 2019.

El módulo ipaddress se encarga de crear fácilmente direcciones IP, redes e interfaces. La vulnerabilidad afecta a como este módulo realiza el análisis de las direcciones IP, realizando un análisis incorrecto de las mismas.  Aunque lo más habitual es ver las direcciones IPv4 en formato decimal, cabe resaltar que es posible cambiar el formato a entero, octal o incluso hexadecimal.

Según la especificación original de IETF, las direcciones IPv4 que estén interpretadas en octal pueden diferenciarse si tienen el prefijo “0”. Esto es debido a que existe direcciones IP ambiguas, como puede ser 127.0.0.1, dirección que es una IP privada, aunque la representación de está puede ser también una IP pública que conduce a un host completamente diferente.

En el caso de las direcciones IP de la biblioteca estándar de Python, los ceros iniciales simplemente se eliminarían y descartarían. Esto ha sido comprobado por los investigadores Sick Codes y Victor Viale. Es decir, esto indica que si se analiza mediante el módulo de ipaddress en Python (con una de las versiones afectadas), la IP ‘010.8.8.8’ sería tratada como ’10.8.8.8’, cuando realmente se debería de entender como ‘8.8.8.8’.

Este fallo de Python podría llegar a permitir ataques remotos. Esto se debe a que un atacante sin ningún tipo de autorización podría llegar a realizar solicitudes falsas del dalo del servidor, inclusión remota de archivos o archivos locales. Este problema afecta a miles de programas basados en Python que implementan el módulo ipaddress.

La vulnerabilidad va a ser corregida en un parche, aunque, como indican los propios investigadores es poco común la gestión de direcciones IP con ceros a la izquierda. Por lo tanto, es un fallo que no debería afectar a muchos usuarios, aunque esto no deber evitar que sea corregido el problema.


No hay comentarios:

Publicar un comentario