Researchers showed that attacker-controlled public issue text entered a Codex-powered GitHub issue-labeling workflow, induced shell activity and enabled access to .NET CoreCLR diagnostic facilities on the Actions runner. The reproduced chain used a lower-trust issue workflow to inspect Runner.Worker memory, recover automation authority and alter a GitHub…
Inspect the ClaimsCase · DiggingBeagle record
Codex issue triage injection crossed GitHub Actions runner and cache trust boundaries
Researchers showed that attacker-controlled public issue text entered a Codex-powered GitHub issue-labeling workflow, induced shell activity and enabled access to .NET CoreCLR diagnostic facilities on the Actions runner. This was a controlled researcher demonstration. The source does not prove a malicious Codex npm package was publicly published or that arbitrary GitHub issue reporters can reproduc
The reproduced chain used a lower-trust issue workflow to inspect Runner.Worker memory, recover automation authority and alter a GitHub Actions cache subsequently consumed by a higher-privilege build. That sequence could affect release and npm OIDC publishing actions downstream.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- demonstrated
- Evidence
- Grade B
- Remediation
- fixed reported
- AI role
- AGAINST AI
Basis and provenance
research_demonstration setting with demonstrated status, based on the identified primary disclosure and its stated test or incident limits. The new Claim distinguishes source observations from hypothetical downstream effects. Impact band is unassigned because the scoped evidence does not justify a comparable quantitative score; no unobserved customer harm or loss is imputed. Remediation state: fixed_reported.
Assessed Nov 13, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-ENR243-009-DETAIL · CLM-R242-CODEX-GITHUB-ISSUE-CACHE-RELEASE-LIMITS · CLM-R242-CODEX-GITHUB-ISSUE-CACHE-RELEASE-MECHANISM · Depi: backdooring Codex through a GitHub issue labeler
At a glance
The issue content was not an authorized instruction to run diagnostics, while a later privileged workflow treated cached artifacts as trusted build inputs. The trust boundary spans prompt, runner process, cache provenance and release identity.
Read the implicationsThis was a controlled researcher demonstration. The source does not prove a malicious Codex npm package was publicly published or that arbitrary GitHub issue reporters can reproduce the chain after the disclosed patch.
Limits and uncertaintyFull account
Researchers showed that attacker-controlled public issue text entered a Codex-powered GitHub issue-labeling workflow, induced shell activity and enabled access to .NET CoreCLR diagnostic facilities on the Actions runner.
The reproduced chain used a lower-trust issue workflow to inspect Runner.Worker memory, recover automation authority and alter a GitHub Actions cache subsequently consumed by a higher-privilege build. That sequence could affect release and npm OIDC publishing actions downstream. The issue content was not an authorized instruction to run diagnostics, while a later privileged workflow treated cached artifacts as trusted build inputs. The trust boundary spans prompt, runner process, cache provenance and release identity.
This was a controlled researcher demonstration. The source does not prove a malicious Codex npm package was publicly published or that arbitrary GitHub issue reporters can reproduce the chain after the disclosed patch. Require restricted issue-bot tools, isolate diagnostic sockets and worker memory, and bind privileged release caches to reviewed provenance.
Evidence reconciliation and effect boundary. The exploit chain contained distinct authority transfers. The public issue introduced hostile instructions; runner diagnostic interfaces exposed process state beyond a scrubbed environment; and a cache written in a less privileged workflow became input to a trusted release workflow. A successful cache-poisoning demonstration is consequential even without a confirmed malicious release, but its individual steps should not be merged into one generic prompt-injection success metric.
Mechanism and trust boundary
- 01
The reproduced chain used a lower-trust issue workflow to inspect Runner.Worker memory, recover automation authority and alter a GitHub Actions cache subsequently consumed by a higher-privilege build. That sequence could affect release and npm OIDC publishing actions downstream.
- 02
The issue content was not an authorized instruction to run diagnostics, while a later privileged workflow treated cached artifacts as trusted build inputs. The trust boundary spans prompt, runner process, cache provenance and release identity.
Claims & evidence
CLM-ENR243-009-DETAILDepi researchers report that lower-trust GitHub issue text steered the Codex issue-labeling workflow into runner diagnostics and an Actions cache subsequently consumed by a more privileged pipeline; they do not report shipping a malicious npm release to ordinary users.supported
Basis: reported finding
- supportsDepi: backdooring Codex through a GitHub issue labelerprimary disclosure
Depi technical report, Introduction, CoreCLR diagnostic pipe, Actions cache poisoning and disclosure sections
CLM-R242-CODEX-GITHUB-ISSUE-CACHE-RELEASE-LIMITSThis was a controlled researcher demonstration. The source does not prove a malicious Codex npm package was publicly published or that arbitrary GitHub issue reporters can reproduce the chain after the disclosed patch.supported
Basis: reported finding
- supportsDepi: backdooring Codex through a GitHub issue labelerprimary disclosure
Reproduced chain from public issue prompt through CoreCLR runner memory and Actions cache
CLM-R242-CODEX-GITHUB-ISSUE-CACHE-RELEASE-MECHANISMResearchers showed that attacker-controlled public issue text entered a Codex-powered GitHub issue-labeling workflow, induced shell activity and enabled access to .NET CoreCLR diagnostic facilities on the Actions runner.supported
Basis: reported finding
- supportsDepi: backdooring Codex through a GitHub issue labelerprimary disclosure
Reproduced chain from public issue prompt through CoreCLR runner memory and Actions cache
Implications
The issue content was not an authorized instruction to run diagnostics, while a later privileged workflow treated cached artifacts as trusted build inputs. The trust boundary spans prompt, runner process, cache provenance and release identity.
Controls and mitigations
- Require restricted issue-bot tools, isolate diagnostic sockets and worker memory, and bind privileged release caches to reviewed provenance.
Unknowns and contradictions
- This was a controlled researcher demonstration. The source does not prove a malicious Codex npm package was publicly published or that arbitrary GitHub issue reporters can reproduce the chain after the disclosed patch.
Sources and citation
Material revision history
- Nov 13, 2026 · Published version · first publication · revision 244