LiveActive security incident?Get immediate response
CVE Record

CVE-2026-28207: Zen-C Vulnerable to Command Injection via Malicious Output Filename

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.

MediumCVSS 6.6Not KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

CVE-2026-28207 affects Zen-C before 0.4.2. A malicious output filename passed to the compiler can make the operating system run unintended shell commands. The main business risk is compromise of developer workstations or CI/CD build runners when untrusted build settings, scripts, or arguments are used.

Executive priority

Treat as a targeted build-environment risk. Prioritize remediation where Zen-C is used in CI/CD, open-source contribution workflows, or shared developer infrastructure. It is not described as remotely exploitable by itself, but successful abuse could affect code, secrets, or build hosts.

Technical view

Zen-C’s zc compiler built a backend compiler command by concatenating arguments, including the user-controlled -o output filename, then executed it with system(). Shell metacharacters in the filename could be interpreted, causing command injection. The issue is CWE-78, local attack vector, CVSS 3.1 score 6.6. It is fixed in version 0.4.2.

Likely exposure

Exposure is likely limited to environments using Zen-C versions before 0.4.2, especially developer machines, automated builds, or CI/CD pipelines where external contributors or generated scripts can influence zc command-line arguments.

Exploitation context

Sources describe local exploitation requiring the compiler to be run with a crafted output filename. User interaction is required because a build user or automation must execute zc. The bundle does not indicate CISA KEV listing or active exploitation in the wild.

Researcher notes

The public description attributes the flaw to src/main.c command construction using system(). The reported fix removes system() calls and introduces ArgList/internal argument handling. Evidence is specific to Zen-C before 0.4.2; no other affected products are identified in the provided sources.

Mitigation direction

  • Upgrade Zen-C to version 0.4.2 or later.
  • Check vendor advisory GHSA-9rff-x96h-76h2 for current guidance.
  • Restrict who can modify build scripts, compiler flags, and CI pipeline configuration.
  • Avoid running untrusted Zen-C builds on privileged developer or CI accounts.

Validation and detection

  • Inventory systems and pipelines using the zc compiler.
  • Confirm Zen-C version is 0.4.2 or later.
  • Review CI jobs for untrusted control of zc output filename arguments.
  • Verify builds run with least-privileged accounts and isolated runners.
Prepared
Confidence
high
Sources
4

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · medium confidence lookup

CWE-78: Command execution behavior lookup

Command injection weaknesses can lead defenders to review execution techniques and command interpreter telemetry. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
description · low confidence lookup

Execution behavior lookup

The CVE wording references code or command execution, so execution technique review may help defensive triage. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-28207 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Medium
CVSS
6.6 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:L

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
0Timeline events
0ADP providers
3Source links

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
6.6CVSS 3.1MediumCVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:L1.84.7Primary CVE score

Vulnerability scoring details

Base CVSS 3.1 score

6.6Medium
CVSS 3.1 vector shape for CVE-2026-28207Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:L

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
z-libsZen-C< 0.4.2Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-78 · source CWE mapping

Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')

Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.