Se ha revelado una falla de seguridad de gravedad alta en la función de análisis de URL de Python que podría explotarse para eludir los métodos de filtrado de protocolos o dominios implementados con una lista de bloqueo, lo que en última instancia daría como resultado lecturas de archivos y ejecución de comandos arbitrarios.
«urlparse tiene un problema de análisis cuando la URL completa comienza con caracteres en blanco», dijo el Centro de Coordinación CERT (CERT/CC) en un aviso del viernes. «Este problema afecta tanto el análisis del nombre de host como el esquema, y eventualmente hace que falle cualquier método de bloqueo».
A la falla se le ha asignado el identificador CVE-2023-24329 y tiene una puntuación CVSS de 7,5. Al investigador de seguridad Yebo Cao se le atribuye el descubrimiento e informe del problema en agosto de 2022. Se ha abordado en las siguientes versiones:
- >= 3.12
- 3.11.x >= 3.11.4
- 3.10.x >= 3.10.12
- 3.9.x >= 3.9.17
- 3.8.x >= 3.8.17, y
- 3.7.x >= 3.7.17
- La vulnerabilidad también afectaría a frameworks muy populares como #Ansible y #Django
urllib.parse es una función de análisis ampliamente utilizada que permite desglosar las URL en sus componentes o, alternativamente, combinar los componentes en una cadena de URL. «Las funciones urlsplit() y urlparse() no realizan una validación apropiada de entradas.»
CVE-2023-24329 surge como resultado de la falta de validación de entrada, lo que lleva a un escenario en el que es posible eludir los métodos de bloqueo proporcionando una URL que comienza con caracteres en blanco (por ejemplo, » https://youtube[.] com»).
«Aunque la lista de bloqueo se considera una opción inferior, hay muchos escenarios en los que todavía se necesita la lista de bloqueo», dijo Cao. «Esta vulnerabilidad ayudaría a un atacante a eludir las protecciones establecidas por el desarrollador para el esquema y el host. Se puede esperar que esta vulnerabilidad ayude a SSRF y RCE en una amplia gama de escenarios».
Fuente y redacción: segu-info.com.ar