CVE-2026-31976
Published: 11 March 2026
Summary
CVE-2026-31976 is a critical-severity Embedded Malicious Code (CWE-506) vulnerability in Xygeni Xygeni-Action. Its CVSS base score is 9.8 (Critical).
Operationally, exploitation aligns with the MITRE ATT&CK technique Compromise Software Dependencies and Development Tools (T1195.001); ranked at the 24.4th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.
The strongest mitigations our analysis identified are NIST 800-53 SI-7 (Software, Firmware, and Information Integrity) and SR-11 (Component Authenticity).
Threat & Defense at a Glance
Threat & Defense Details
Mitigating Controls (NIST 800-53 r5)AI
Requires verification of component authenticity prior to use, directly preventing execution of the maliciously poisoned v5 tag in GitHub Actions workflows.
Enforces integrity checks such as cryptographic hashes or SHA pinning on fetched software components, blocking the tampered action.yml from the malicious commit.
Maintains a provenance ledger to trace the origin of the v5 tag to the unmerged malicious PR commit, enabling prevention or detection of the supply chain compromise.
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
CVE directly describes compromise of GitHub Action (development tool/dependency) via tag poisoning to deliver obfuscated shell code, enabling RCE on CI runners through Unix shell execution in workflows.
NVD Description
xygeni-action is the GitHub Action for Xygeni Scanner. On March 3, 2026, an attacker with access to compromised credentials created a series of pull requests (#46, #47, #48) injecting obfuscated shell code into action.yml. The PRs were blocked by branch…
more
protection rules and never merged into the main branch. However, the attacker used the compromised GitHub App credentials to move the mutable v5 tag to point at the malicious commit (4bf1d4e19ad81a3e8d4063755ae0f482dd3baf12) from one of the unmerged PRs. This commit remained in the repository's git object store, and any workflow referencing @v5 would fetch and execute it. This is a supply chain compromise via tag poisoning. Any GitHub Actions workflow referencing xygeni/xygeni-action@v5 during the affected window (approximately March 3–10, 2026) executed a C2 implant that granted the attacker arbitrary command execution on the CI runner for up to 180 seconds per workflow run.
Deeper analysisAI
CVE-2026-31976 is a supply chain compromise vulnerability affecting the xygeni-action GitHub Action, specifically the mutable v5 tag of the xygeni/xygeni-action repository. On March 3, 2026, an attacker with compromised credentials created pull requests (#46, #47, #48) injecting obfuscated shell code into action.yml. Although branch protection rules prevented these PRs from merging into the main branch, the attacker used compromised GitHub App credentials to retag the v5 reference to point at the malicious commit (4bf1d4e19ad81a3e8d4063755ae0f482dd3baf12), which persisted in the repository's git object store. This tag poisoning (CWE-506) enabled remote code execution for any GitHub Actions workflow referencing xygeni/xygeni-action@v5, with a CVSS v3.1 score of 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H).
Any GitHub Actions workflow referencing xygeni/xygeni-action@v5 between approximately March 3 and March 10, 2026, would fetch and execute the malicious commit, deploying a command-and-control (C2) implant. This granted the attacker arbitrary command execution on the affected CI runner for up to 180 seconds per workflow run, allowing potential data exfiltration, persistence, or further compromise of the runner environment. Exploitation required no privileges beyond public access to the action, targeting users of the xygeni-action in their workflows.
Mitigation details are available in the GitHub security advisory (GHSA-f8q5-h5qh-33mh) and issue tracker (#54) at https://github.com/xygeni/xygeni-action/security/advisories/GHSA-f8q5-h5qh-33mh and https://github.com/xygeni/xygeni-action/issues/54, published following the incident detection on March 11, 2026.
Details
- CWE(s)