CVE-2026-28207

MEDIUM CVSS 3.1: 6,6 EPSS 0.02%
Обновлено 27 февраля 2026
Zen
Параметр Значение
CVSS 6,6 (MEDIUM)
Устранено в версии 0.4.2
Тип уязвимости CWE-78 (Внедрение команд ОС)
Поставщик Zen
Публичный эксплойт Нет

Zen C — это язык системного программирования, который компилируется в удобочитаемый для человека GNU C/C11. До версии 0.4.2 уязвимость внедрения команд (CWE-78) в компиляторе Zen C позволяла локальным злоумышленникам выполнять произвольные команды оболочки, предоставляя специально созданное имя выходного файла через аргумент командной строки `-o`. Уязвимость существовала в логике приложения main (в частности, в src/main.c), где компилятор создавал командную строку оболочки для вызова внутреннего компилятора C.

Эта командная строка была построена путем объединения различных аргументов, включая имя выходного файла, управляемого пользователем, и впоследствии выполнялась с использованием функции `system()`. Поскольку `system()` вызывает оболочку для анализа и выполнения команды, метасимволы оболочки в имени выходного файла интерпретировались оболочкой, что приводило к выполнению произвольной команды. Злоумышленник, который может повлиять на аргументы командной строки, передаваемые компилятору zc (например, через сценарий сборки или конфигурацию конвейера CI/CD), может выполнять произвольные команды с привилегиями пользователя, запускающего компилятор.

Уязвимость была исправлена ​​в версии 0.4.2 путем удаления вызовов `system()`, реализации `ArgList` и внутренней обработки аргументов. Пользователям рекомендуется обновить Zen C до версии 0.4.2 или более поздней.

Показать оригинальное описание (EN)

Zen C is a systems programming language that compiles to human-readable GNU C/C11. Prior to version 0.4.2, a command injection vulnerability (CWE-78) in the Zen C compiler allows local attackers to execute arbitrary shell commands by providing a specially crafted output filename via the `-o` command-line argument. The vulnerability existed in the `main` application logic (specifically in `src/main.c`), where the compiler constructed a shell command string to invoke the backend C compiler. This command string was built by concatenating various arguments, including the user-controlled output filename, and was subsequently executed using the `system()` function. Because `system()` invokes a shell to parse and execute the command, shell metacharacters within the output filename were interpreted by the shell, leading to arbitrary command execution. An attacker who can influence the command-line arguments passed to the `zc` compiler (like through a build script or a CI/CD pipeline configuration) can execute arbitrary commands with the privileges of the user running the compiler. The vulnerability has been fixed in version 0.4.2 by removing `system()` calls, implementing `ArgList`, and internal argument handling. Users are advised to update to Zen C version v0.4.2 or later.

Характеристики атаки

Способ атаки
Локальный
Нужен локальный доступ
Сложность
Низкая
Легко эксплуатировать
Нужны права
Не требуются
Права не нужны
Участие пользователя
Требуется
Нужно действие пользователя

Последствия

Конфиденциальность
Низкое
Частичная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Низкое
Частичное нарушение работы

Строка CVSS v3.1