Vulnerabilidad crítica de RCE descubierta en la popular biblioteca protobuf.js
Se ha identificado una vulnerabilidad crítica de ejecución remota de código (RCE) en **protobuf.js**, una popular implementación en JavaScript de Protocol Buffers de **Google**. El código de prueba de concepto (exploit) ya está disponible, lo que genera preocupación para las aplicaciones que dependen de esta biblioteca para la comunicación entre servicios y el manejo de datos.

**protobuf.js**, con casi 50 millones de descargas semanales en el registro del **Node Package Manager (npm)**, está siendo investigada debido a una falla de ejecución remota de código (RCE) recientemente divulgada. La vulnerabilidad se origina en la generación insegura de código dinámico, según informó **Endor Labs**.
### La Vulnerabilidad: GHSA-xq3m-2v4x-88gg
Actualmente rastreada como GHSA-xq3m-2v4x-88gg (sin un ID **CVE** oficial), la vulnerabilidad permite a los atacantes inyectar código arbitrario en funciones generadas al proporcionar esquemas maliciosos. Esto se debe al método de la biblioteca para construir funciones de JavaScript a partir de esquemas protobuf concatenando cadenas y ejecutándolas a través del constructor `Function()` sin una validación adecuada de los identificadores derivados del esquema.
**Endor Labs** explica que esta falla permite la RCE en servidores o aplicaciones que cargan esquemas influenciados por el atacante. La explotación exitosa podría otorgar acceso a información sensible como variables de entorno, credenciales y bases de datos, lo que podría conducir a movimientos laterales dentro de la infraestructura comprometida. Las máquinas de los desarrolladores también corren riesgo si procesan esquemas no confiables localmente.
### Impacto y Mitigación
La vulnerabilidad afecta a las versiones 8.0.0/7.5.4 y anteriores de **protobuf.js**. Para mitigar el riesgo, **Endor Labs** recomienda encarecidamente actualizar a las versiones 8.0.1 y 7.5.5, que incluyen un parche que sanitiza los nombres de tipo eliminando caracteres no alfanuméricos. Si bien este parche proporciona un alivio inmediato, **Endor Labs** sugiere que una solución más robusta y a largo plazo sería eliminar el uso de `Function` por completo para identificadores accesibles por el atacante.
"La explotación es sencilla", advierte **Endor Labs**, haciendo referencia a la prueba de concepto (PoC) mínima incluida en el [aviso de seguridad](https://github.com/protobufjs/protobuf.js/security/advisories/GHSA-xq3m-2v4x-88gg). Hasta ahora, no hay informes de explotación activa en la naturaleza.
### Cronología de Divulgación
La vulnerabilidad fue reportada por el investigador de **Endor Labs**, **Cristian Staicu**, el 2 de marzo. Los mantenedores de **protobuf.js** lanzaron un parche en GitHub el 11 de marzo. Los paquetes **npm** actualizados estuvieron disponibles el 4 de abril para la rama 8.x y el 15 de abril para la rama 7.x.
### Recomendaciones
Además de actualizar, **Endor Labs** recomienda:
* Auditar las dependencias transitivas.
* Tratar la carga de esquemas como entrada no confiable.
* Preferir esquemas precompilados/estáticos en entornos de producción.
