La nueva vulnerabilidad de contrabando de parámetros 'ParseThru' afecta a las aplicaciones basadas en Golang

Los investigadores de seguridad han descubierto una nueva vulnerabilidad llamada ParseThru que afecta a las aplicaciones basadas en Golang y que podría abusarse para obtener acceso no autorizado a las aplicaciones basadas en la nube.

“La vulnerabilidad recién descubierta permite que un actor de amenazas eluda las validaciones bajo ciertas condiciones, como resultado del uso de métodos de análisis de URL inseguros integrados en el lenguaje”, dijo la firma de ciberseguridad israelí Oxeye en un informe compartido con The Hacker News.

El problema, en esencia, tiene que ver con las inconsistencias derivadas de los cambios introducidos en la lógica de análisis de URL de Golang que se implementa en la biblioteca "net/url".

Si bien las versiones del lenguaje de programación anteriores a la 1.17 trataban los puntos y comas como un delimitador de consulta válido (p. ej., ejemplo.com?a=1;b=2&c=3), este comportamiento se ha modificado desde entonces para generar un error al encontrar una cadena de consulta que contiene un punto y coma

"Los paquetes net/url y net/http solían aceptar ";" (punto y coma) como separador de configuración en las consultas de URL, además de "&" (ampersand)", según las notas de la versión 1.17 publicadas en agosto pasado.

"Ahora, las configuraciones con punto y coma sin codificación porcentual se rechazan y los servidores net/http registrarán una advertencia en 'Server.ErrorLog' cuando encuentren uno en una URL de solicitud".

El problema surge cuando una API pública basada en Golang basada en la versión 1.17 o posterior se comunica con un servicio de back-end que ejecuta una versión anterior, lo que lleva a un escenario en el que un actor malicioso podría pasar de contrabando solicitudes que incorporan parámetros de consulta que, de lo contrario, serían rechazados.

En pocas palabras, la idea es enviar solicitudes especialmente diseñadas que contengan un punto y coma en la cadena de consulta, que la API de Golang orientada al usuario ignora, pero procesa el servicio interno.

Esto, a su vez, es posible gracias al hecho de que uno de los métodos responsables de obtener la cadena de consulta analizada descarta silenciosamente el mensaje de error devuelto.

Oxeye dijo que identificó varias instancias de ParseThru en proyectos de código abierto como Harbor, Traefik y Skipper, lo que hizo posible eludir las validaciones implementadas y llevar a cabo acciones no autorizadas. Los problemas se han abordado luego de la divulgación responsable a los respectivos proveedores.

Esta no es la primera vez que el análisis de URL plantea un problema de seguridad. A principios de enero, Claroty y Snyk revelaron hasta ocho fallas en bibliotecas de terceros escritas en lenguajes C, JavaScript, PHP, Python y Ruby que se originaron como resultado de una confusión en el análisis de URL.

Fuente: https://thehackernews.com

No olvides Compartir...  Siguenos en twitter: @disoftin - @fredyavila - @PaolaMRincon

Publicar un comentario

0 Comentarios