Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en Zen C (CVE-2026-28207)

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-78 Neutralización incorrecta de elementos especiales usados en un comando de sistema operativo (Inyección de comando de sistema operativo)
Fecha de publicación:
26/02/2026
Última modificación:
03/03/2026

Descripción

Zen C es un lenguaje de programación de sistemas que compila a GNU C/C11 legible por humanos. Antes de la versión 0.4.2, una vulnerabilidad de inyección de comandos (CWE-78) en el compilador Zen C permite a atacantes locales ejecutar comandos de shell arbitrarios proporcionando un nombre de archivo de salida especialmente diseñado a través del argumento de línea de comandos '-o'. La vulnerabilidad existía en la lógica de la aplicación 'main' (específicamente en 'src/main.c'), donde el compilador construía una cadena de comandos de shell para invocar al compilador C de backend. Esta cadena de comandos se construía concatenando varios argumentos, incluyendo el nombre de archivo de salida controlado por el usuario, y posteriormente se ejecutaba usando la función 'system()'. Debido a que 'system()' invoca un shell para analizar y ejecutar el comando, los metacaracteres de shell dentro del nombre de archivo de salida eran interpretados por el shell, lo que llevaba a la ejecución arbitraria de comandos. Un atacante que puede influir en los argumentos de línea de comandos pasados al compilador 'zc' (como a través de un script de compilación o una configuración de pipeline de CI/CD) puede ejecutar comandos arbitrarios con los privilegios del usuario que ejecuta el compilador. La vulnerabilidad ha sido corregida en la versión 0.4.2 eliminando las llamadas a 'system()', implementando 'ArgList' y el manejo interno de argumentos. Se aconseja a los usuarios actualizar a la versión v0.4.2 de Zen C o posterior.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:z-libs:zen_c:*:*:*:*:*:*:*:* 0.4.2 (excluyendo)