Fallo en el lenguaje CSS Less.js hace que pueda filtrar las claves

Iniciado por AXCESS, Julio 15, 2021, 12:03:26 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Los investigadores de la empresa canadiense de infoseguridad Software Secured detallaron en una publicación en su blog** una vulnerabilidad en el popular lenguaje de preprocesado de CSS (Less.js) que podría ser explotada para lograr la ejecución remota de código (RCE) contra sitios web que permiten a los usuarios introducir código Less.js.

Esto puede llevar a dos resultados distintos dependiendo del contexto del procesador Less. Si el código de Less se procesa en el lado del cliente, se produce un cross-site scripting (XSS), pero si se procesa en el lado del servidor se produce un RCE.
Todas las versiones de Less que soportan la sintaxis @plugin son vulnerables. Less.js transpila a código CSS válido y se utiliza para ayudar la escritura de CSS en sitios web.

La biblioteca Less.js admite plugins que pueden incluirse directamente en el código Less desde una fuente remota utilizando la sintaxis @plugin. Los plugins se escriben en JavaScript y cuando el código Less se interpreta, cualquier plugin incluido se ejecutará.

Prueba de concepto(PoC)

Los investigadores publicaron en su blog** una prueba de concepto y un ejemplo de cómo puede explotarse la sintaxis del plugin en el mundo real.

Utilizando No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, un popular sitio web para crear fragmentos de código web que admite lenguajes estándar además de Less.js, realizaron su prueba de concepto (PoC) contra el sitio y fueron capaces de filtrar sus claves secretas de AWS y ejecutar comandos arbitrarios dentro de sus AWS Lambdas.

Una vez que los investigadores pudieron demostrar el fallo, la vulnerabilidad fue reportada a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, que corrigió el fallo.

Condiciones que el entorno debe cumplir para poder aprovechar el fallo

Como el autor Jeremy Buis, cuenta en The Daily Swig, la vulnerabilidad requiere «ciertas condiciones» para tener éxito.
Un posible escenario vulnerable podría ser una función que acepte estilos personalizados a través de código Less de un usuario. Una vez que estamos en una configuración vulnerable, es sencillo explotar la aplicación.

Jeremy Buis indicó que, por lo que sabe, Less no ha parcheado el fallo. El comportamiento de las comillas invertidas se conoce desde hace tiempo y existe una configuración para mitigarlo en las versiones recientes. Hace más de un año que los administradores del proyecto reconocieron dicho error.

Recomendaciones para mitigar el problema


Los investigadores aconsejan a los usuarios de Less.js, que para mitigar los riesgos consideren lo siguiente: Utilizar código CSS en lugar de utilizar código Less. Si se requiere el uso de Less, se recomienda transpilar el código en la parte cliente para evitar la amenaza de ataques SSRF y RCE.

Como se indicó anteriormente y teniendo en cuenta las recomendaciones de los investigadores. Para mitigar la amenaza de XSS, los investigadores recomiendan actualizar a una versión reciente en la que la ejecución mediante comillas invertidas  basada en JavaScript esté desactivada por defecto así como clonar la biblioteca Less y eliminar el soporte de la sintaxis @plugin.

Referencias:
LESS CSS
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
LESS Github
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
** Software Secured
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Vía:
Hacking Land
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta