Aplicaciones y proyectos de Python que usan urllib3 tienen una vulnerabilidad que permite ataques DoS

Los miembros de un curso de hacking descubrieron que Urllib3, un popular cliente HTTP de Python, podría estar expuesto a la explotación de una vulnerabilidad de denegación de servicio (DoS) descubierta recientemente.

Cabe mencionar que esta biblioteca es empleada en todo el ecosistema de Python, con más de mil 200 paquetes, incluyendo los más populares como requests, selenium, kubernetes, entre otros. Dadas sus amplias capacidades, lo más probable es que la mayoría de los usuarios de alguno de los proyectos de Python estén empleando Urllib3.   

La versión vulnerable (1.25.2), se agregó logic a util/url.py para codificar por ciento los caracteres no válidos en el destino de la solicitud. El método _encode_invalid_chars, tal cual está escrito, contiene todas las coincidencias de codificaciones porcentuales, mencionan los participantes del curso de hacking.

Para una URL de determinada longitud, el tamaño valor de percent_encoding corresponde a un tiempo de ejecución lineal. El siguiente paso (normalizar los bytes codificados porcentuales existentes) también requiere un tiempo de ejecución lineal para cada codificación de porcentaje. Un actor de amenazas podría abusar de esta ineficiencia para consumir los recursos de procesamiento de un sistema objetivo, lo que conduciría a la condición DoS, que podría extenderse a periodos indeterminados.

El reporte fue presentado a los desarrolladores de la biblioteca expuesta, quienes a su vez reconocieron la presencia de la falla y se apresuraron a lanzar la versión 1.25.8, en la que la vulnerabilidad DoS ha sido mitigada.   

Como ya se ha mencionado, esta es una biblioteca ampliamente utilizada en los proyectos de Python, por lo que los miembros del curso de hacking recomiendan a los desarrolladores verificar si sus proyectos emplean la versión vulnerable de Urllib3. Muchos paquetes de Python dependen de urllib3, por lo que es probable que la vulnerabilidad esté presente en los proyectos como una dependencia indirecta, por lo que no será posible para los desarrolladores instalar las actualizaciones, dependiendo de la dependencia de nivel superior.

Para obtener más información sobre fallas de seguridad, exploits, ataques cibernéticos y análisis de malware encontrados recientemente, puede visitar el sitio web oficial del Instituto Internacional de Seguridad Cibernética (IICS), así como los sitios oficiales de las compañías tecnológicas.