Proto6: Seis vulnerabilidades críticas descubiertas en Protobuf.js, amenazando datos y sistemas de IA
Investigadores de ciberseguridad han identificado seis vulnerabilidades críticas, denominadas colectivamente **Proto6**, en **protobuf.js**, una popular implementación en JavaScript y TypeScript de **Protocol Buffers**. Estas fallas podrían permitir ataques de ejecución remota de código (RCE) y denegación de servicio (DoS), afectando a una amplia gama de aplicaciones Node.js, bibliotecas cliente de Google Cloud e incluso ecosistemas de IA.
Investigadores de ciberseguridad de **Cyera** han desvelado media docena de vulnerabilidades dentro de **protobuf.js**, la implementación ampliamente utilizada en JavaScript y TypeScript de **Protocol Buffers** (**Protobuf**). La explotación exitosa de estas fallas, codificadas colectivamente como **Proto6**, podría acarrear consecuencias graves, incluyendo ejecución remota de código (RCE) y ataques de denegación de servicio (DoS).
**Assaf Morag**, investigador de seguridad en **Cyera**, destacó el impacto potencial: “En entornos afectados, un único esquema, descriptor o payload malicioso de protobuf podría ser suficiente para provocar bloqueos, corrupción en tiempo de ejecución o incluso ejecución de código”.
**Protobuf** es un mecanismo de código abierto e independiente del lenguaje para serializar datos estructurados, desarrollado y utilizado internamente por **Google** antes de su lanzamiento público en 2008.
### Amplio Impacto en Entornos Node.js y Cloud
Las vulnerabilidades identificadas afectan principalmente a aplicaciones **Node.js** que utilizan **protobuf.js**, junto con bibliotecas cliente de **Google Cloud**, frameworks de mensajería como **Baileys**, y pipelines CI/CD. **Cyera** advierte que cualquier servicio **Node.js** que deserialice datos **Protobuf** o genere código a partir de esquemas con **protobuf.js** probablemente esté en riesgo.
### Las Vulnerabilidades Proto6 Explicadas
Las seis vulnerabilidades se detallan a continuación:
* **CVE-2026-44289** (puntuación CVSS: 7.5): DoS a través de recursión unbounded de protobuf.
* **CVE-2026-44290** (puntuación CVSS: 7.5): DoS a nivel de proceso al cargar esquemas con rutas de opción inseguras.
* **CVE-2026-44291** (puntuación CVSS: 8.1): Gadget de generación de código tras contaminación de prototipo.
* **CVE-2026-44292** (puntuación CVSS: 5.3): Inyección de prototipo en constructores de mensajes generados.
* **CVE-2026-44294** (puntuación CVSS: 5.3): DoS por nombres de campo elaborados en código generado.
* **CVE-2026-44295** (puntuación CVSS: 8.7): Inyección de código en salida estática de pbjs a partir de nombres de esquema elaborados.
**Cyera** atribuye estas vulnerabilidades a la suposición por defecto de la biblioteca de que las entradas de esquema y metadatos son confiables. Esta supervisión crítica de validación puede manipular el comportamiento de la aplicación, lo que podría llevar a la ejecución de código.
### Escenarios de Ataque
**Morag** enfatizó que, si bien la explotación requiere condiciones específicas, estas son cada vez más comunes en los ecosistemas modernos de datos e IA que intercambian frecuentemente datos, esquemas y archivos de configuración a través de diversos servicios y plataformas.
Un atacante podría inyectar un esquema **protobuf** malicioso para comprometer flujos de trabajo CI/CD, lo que llevaría a la filtración de secretos de compilación (**CVE-2026-44295**). Alternativamente, un mensaje especialmente elaborado podría bloquear servicios **Node.js**, como bots de **WhatsApp** creados con **Baileys** (**CVE-2026-44292**).
### La Falla Más Grave: CVE-2026-44291
La vulnerabilidad más crítica, **CVE-2026-44291**, permite la ejecución de código cuando una aplicación **Node.js** procesa entrada controlada por el atacante.
**Vladimir Tokarev**, otro investigador de seguridad, explicó el mecanismo: “Esa entrada llega a un gadget de contaminación de prototipo. Más tarde, el mismo proceso utiliza **protobuf.js** para codificar o decodificar un mensaje. Dado que **protobuf.js** resuelve los nombres de tipo a través de búsquedas de propiedades simples, un **Object.prototype** contaminado puede hacer que una cadena controlada por el atacante parezca un primitivo **protobuf** válido”.
Agregó: “**Protobuf.js** inserta esa cadena en un generador o decodificador compilado y lo compila con **Function()**. El atacante obtiene ejecución arbitraria de JavaScript dentro del proceso **Node.js**”.
### Versiones Afectadas y Parches
Las siguientes versiones de la herramienta son vulnerables:
* **protobuf.js**: versiones <= 7.5.5 y >= 8.0.0 <= 8.0.1
* **protobufjs-cli**: versiones <= 1.2.0 y >= 2.0.0 <= 2.0.1
Los parches están disponibles en las versiones 7.5.6 y 8.0.2 de **protobufjs**, y en las versiones 1.2.1 y 2.0.2 de **protobufjs-cli**. Se recomienda encarecidamente a los usuarios que apliquen estas actualizaciones de inmediato para mitigar posibles amenazas.
### Una Nueva Superficie de Ataque para Cargas de Trabajo de IA
**Cyera** concluyó subrayando las amplias implicaciones: “Dado que **protobuf.js** se utiliza intensivamente dentro de bases de datos, almacenes vectoriales, pipelines de inferencia, sistemas de orquestación, herramientas CI/CD y SDKs en la nube, la explotación exitosa podría afectar a cargas de trabajo empresariales y de IA sensibles a gran escala”.
Este incidente resalta una tendencia creciente en la que “El software moderno trata cada vez más los esquemas, metadatos y archivos de configuración como entradas confiables que impulsan la automatización, la orquestación y la generación de código. Cuando esas suposiciones de confianza fallan, los datos pueden convertirse en comportamiento. Ese cambio crea nuevas superficies de ataque que los equipos de seguridad deben aprender a identificar y gestionar.”