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

Compartir