Cordyceps: When Pull Requests Cross the Line Into Privileged CI/CD
The GitHub Actions vulnerability called Cordyceps is a workflow-chain flaw where untrusted pull request input escapes its low-trust context and is later consumed by privileged CI/CD jobs, allowing attacker-controlled code, comments, artifacts, or metadata to reach secrets, powerful repository tokens, cloud credentials, and automated release infrastructure even though the workflows appear to pass normal security checks. This is not a bug in GitHub’s platform so much as a design mistake in how maintainers connect their workflows. Cordyceps shows that CI/CD security risks often hide in the seams between jobs, where a harmless-looking test workflow feeds directly into a deployment workflow that holds real authority. If you treat every passing workflow as safe without questioning how inputs move between them, you are inviting supply chain attacks through your automation rather than your source code.
What Novee’s Findings Reveal About the Scale of Secret Exposure
Novee’s research makes it clear this GitHub Actions vulnerability is not a theoretical edge case but a common pattern in real projects. The company reviewed around 30,000 high-impact repositories and found 654 with suspicious workflow chains, confirming more than 300 as fully exploitable paths from untrusted pull requests to privileged CI/CD jobs. That number should unsettle any serious engineering team: it means hundreds of pipelines were quietly wiring attacker input into jobs that can read secrets or use write-capable GITHUB_TOKENs. Notably, projects tied to Microsoft, Google, Apache, Cloudflare, and the Python Software Foundation appeared in Novee’s affected-tooling list, showing that even experienced teams misjudge where trust boundaries sit. The lesson is blunt: if leading organizations can miswire their workflows and expose CI/CD tokens, everyone else is almost certainly making similar mistakes.
Why CI/CD Pipelines Amplify Supply Chain Attacks
Cordyceps matters because CI/CD pipelines are not just build farms; they are control planes for your entire software supply chain. When a GitHub Actions job with broad permissions consumes untrusted pull request data, the attacker is not merely running tests—they may be one hop away from package-publishing rights, infrastructure modification, or long-lived credentials. As Peyton Kennedy at Endor Labs put it, “The damage from a single mistake tends to be large since pipelines hold the keys to source code, secrets, and the ability to ship software, so one foothold can reach far downstream.” This makes secret exposure prevention in CI/CD more urgent than yet another static analysis rule in your application code. The real risk is that your automated deployment pipelines quietly turn minor workflow oversights into full supply chain attacks that compromise users who never touched your repository.
npm 12 Shows How Ecosystems Are Reacting to CI/CD Security Risks
The npm 12 release is a clear sign that ecosystems are starting to treat CI/CD security risks and supply chain attacks as a default concern, not an optional hardening step. GitHub has disabled dependency install scripts by default, making allowScripts opt-in so preinstall, install, postinstall, and implicit node-gyp builds only run after explicit approval. It also tightened npm’s trust model by phasing out granular access tokens that bypass two-factor authentication, stripping them of sensitive account and package management powers and removing their ability to publish directly without human 2FA approval. These changes mirror the lesson from Cordyceps: automation must assume untrusted inputs unless proven otherwise, and powerful tokens should be fenced in with strong identity checks. If your workflows still treat scripts and tokens as convenience tools rather than high-risk assets, you are behind the curve.
Opinionated takeaway: npm’s move to make risky behavior opt-in is exactly the stance GitHub Actions maintainers need to copy inside their own repositories. Trust should be granted grudgingly and revoked quickly, not sprinkled across workflows in the name of developer speed.

Immediate Steps Developers Should Take—and the Bigger Lesson
Developers cannot wait for a platform-level fix to this GitHub Actions vulnerability; the flaw lives in workflow design. First, audit every workflow, especially those triggered by pull_request and pull_request_target, and block untrusted pull requests from running in privileged jobs that can reach secrets or write-capable tokens. Second, reduce permissions on GITHUB_TOKEN and any CI/CD credentials to the bare minimum, and establish aggressive secret rotation when you discover a miswired workflow or token overreach. Third, validate and tightly scope artifacts and metadata passed between workflows so attacker-controlled data cannot ride hidden paths into deployment steps. Novee’s Cordyceps disclosure is a warning that supply chain security gaps are now mostly about automation, not missing patches. The conclusion should be uncomfortable but clear: if you treat your pipelines as background tooling instead of critical security systems, you are building a modern software stack on a very old-fashioned mistake.






