Endor Labs, empresa de seguridad de aplicaciones, informó el viernes sobre una vulnerabilidad de ejecución remota de código en protobuf.js, una librería ampliamente utilizada en el ecosistema npm. Con un promedio de casi 50 millones de descargas semanales, protobuf.js se emplea en comunicaciones entre servicios, aplicaciones en tiempo real y almacenamiento eficiente de datos estructurados en bases de datos y entornos cloud.
La falla de seguridad, que aún no tiene asignado un número CVE oficial y se rastrea como GHSA-xq3m-2v4x-88gg, se origina en la generación insegura de código dinámico. Según Endor Labs, la librería construye funciones JavaScript a partir de esquemas Protobuf concatenando cadenas y ejecutándolas mediante el constructor Function(), pero no valida adecuadamente los identificadores derivados del esquema, como los nombres de mensajes.
Esto permite que un atacante proporcione un esquema malicioso que inyecte código arbitrario en la función generada, el cual se ejecuta cuando la aplicación procesa un mensaje que usa ese esquema. Como resultado, se abre la puerta a la ejecución remota de código en servidores o aplicaciones que carguen esquemas influenciados por el atacante, otorgando acceso a variables de entorno, credenciales, bases de datos y sistemas internos, e incluso permitiendo movimiento lateral dentro de la infraestructura.
La vulnerabilidad afecta a protobuf.js versiones 8.0.0/7.5.4 y anteriores. Endor Labs recomienda actualizar a las versiones 8.0.1 y 7.5.5, que solucionan el problema. El parche sane los nombres de tipo eliminando caracteres no alfanuméricos, impidiendo que el atacante cierre la función sintética. Sin embargo, Endor sugiere que una solución a largo plazo sería dejar de pasar identificadores alcanzables por el atacante a través de Function por completo.
Endor Labs advierte que la explotación es sencilla y que la prueba de concepto incluida en el aviso de seguridad lo refleja. No obstante, hasta la fecha no se ha observado explotación activa. La vulnerabilidad fue reportada por Cristian Staicu, investigador de Endor Labs y cazador de recompensas de bugs de seguridad, el 2 de marzo. Los mantenedores de protobuf.js lanzaron un parche en GitHub el 11 de marzo, y las correcciones en los paquetes npm estuvieron disponibles el 4 de abril para la rama 8.x y el 15 de abril para la 7.x.
Además de actualizar a versiones parcheadas, Endor Labs recomienda auditar las dependencias transitivas, tratar la carga de esquemas como entrada no confiable y preferir esquemas precompilados/estáticos en producción.


















Deja una respuesta