Unos investigadores demuestran un exploit de ejecución remota de código (RCE) denominado «Node2Shell» en una compilación de Node.js utilizando datos Brotli manipulados
Un grupo de investigadores de Imperva ha expuesto una vulnerabilidad de ejecución remota de código, denominada "Node2Shell", en versiones oficiales de Node.js. Mediante el uso de datos maliciosos de Brotli, la prueba de concepto logró ejecutar código en una imagen específica de Linux arm64 sin requerir un depurador o una compilación personalizada. Node.js reveló este fallo y emitió correcciones para solucionarlo.
El problema afecta al decodificador de Brotli integrado en Node.js, comprometiendo a las líneas de versiones correspondientes. Los servicios pueden verse expuestos tanto al procesar respuestas comprimidas con Brotli mediante funciones nativas como al decodificar cuerpos de solicitudes en aplicaciones que emplean ciertos analizadores y rutas. Los investigadores comprobaron que la ejecución de código era posible a través de ambas vías utilizando versiones específicas previamente fijadas.
El fallo se origina en la forma en que el decodificador gestiona un punto imposible dentro de un flujo de datos de Brotli, donde el sistema continúa operando en un estado inválido en lugar de detenerse. Para solucionar este problema, Node.js incorporó un parche que fuerza al decodificador a detenerse mostrando un error de formato. Las recomendaciones de seguridad indican que se debe actualizar a una versión con el parche aplicado, ya que no existen alternativas de mitigación internas en el entorno de ejecución, aunque algunas entidades han implementado reglas de bloqueo temporales.