Disrupting supply chain attacks on npm and GitHub Actions
GitHub has implemented several improvements to disrupt supply chain attacks on npm and GitHub Actions, including preventive account protection for high-impact accounts, safer pull_request_target defaults for GitHub Actions checkout, and control over who and what triggers …
Intelligence analysis by Llama

GitHub has taken steps to disrupt supply chain attacks on npm and GitHub Actions by implementing several improvements, including preventive account protection and safer workflow defaults.
Imagine you have a big box of toys, and someone puts a bad toy in the box. If you can’t see what’s in the box, it’s hard to know if the bad toy is there. GitHub has made some changes to help keep the box of toys safe. They’ve added a lock to the box so that only trusted people can put new toys in, and they’ve also made it harder for bad toys to get into the box in the first place. This will help keep the toys safe and prevent bad things from happening.
Analysis
Anatomy of supply chain attacks
Supply chain attacks chain together several weaknesses, and there is no single security capability that can stop them. Addressing them takes a holistic approach, prioritizing the mitigations that break the most impactful links in the attack chain. Our teams have been studying these attacks to deploy several improvements that disrupt them and limit their impact.
Improvements made to npm and GitHub Actions
In the past few months, improvements have been focused on cutting off specific, common techniques and providing ways for customers to identify and respond to these attacks. Initial compromise attacks start by compromising a single project, often by directly compromising a maintainer’s account or by targeting the project’s actions workflows. npm adds preventive account protection for high-impact accounts (June 2026) : Frequently, attacks start with a phishing campaign targeting maintainers. With this change, high-impact npm accounts are now put into a read-only mode for 72 hours when they change their email or use a 2FA recovery code. This delay allows maintainers time to respond and recover the account before their account can be used to start an attack.
Safer pull_request_target defaults for GitHub Actions checkout (June 2026) : A common vulnerability in a project’s CI/CD pipelines are “pwn requests,” where a workflow triggers on pull requests from forks and then executes user-submitted and untrusted code from that fork. We changed the default behavior of actions/checkout to prevent the checkout of untrusted code from forks in commonly exploited triggers unless you explicitly opt-out (after reviewing your risk). This change and its backport to older versions cut off one of the most common vulnerable code patterns leading to code execution in GitHub Actions CI/CD workflows and initial project compromise.
Control who and what triggers GitHub Actions workflows (June 2026) : Maybe you’d prefer to opt-out of these risky action triggers altogether or limit who can trigger them. This new control lets you set enterprise, organization, or repository level policies on who is allowed to trigger workflows and what trigger types are allowed. These workflow execution policies provide a governable and customizable layer of least-privilege around Action workflows that reduce the attack surface of your CI/CD infrastructure.
Read-only Actions cache for untrusted triggers (June 2026) : After an attacker has achieved code execution in an Actions workflow, they then look to escalate to more privileged workflows (and therefore credentials) through poisoning the cache entries shared across workflows. With this change, we restrict the ability for less trusted workflows to modify the cache shared with other workflows. This directly closes a common path attackers have used to turn a vulnerability with limited impact into one that compromises highly privileged credentials used by release and publishing workflows.
Exfiltrate credentials Once an attacker has access to a single package, they then focus on detecting and exfiltrating credentials to gain further access and use in later exploitation across ecosystems. npm trusted publishing now supports CircleCI (April 2026) : The number one thing you can do to disrupt these attacks is to remove long-lived credentials from your CI/CD pipeline. Trusted publishing is a great way to authorize publishes to your package repository without a long-lived credential. By adding CircleCI as a trusted publishing provider, we’ve made it possible for more people to remove the credentials these attacks attempt to exfiltrate.
Actions network firewall (In technical preview) : This technical preview logs all outbound network traffic from your Action workflow runs so you can detect unusual behavior like pulling down malicious code or exfiltrating credentials to a new domain. Future work will enable network egress restrictions and policies to block these attacks before they lead to further escalation and exfiltration.
Propagating the attack With the credentials harvested from the previous step, attackers attempt to use those credentials to distribute their malware and compromise more projects and maintainers as quickly as possible. Staged publishing for npm (May 2026) : With staged publishing, it’s not enough to have credentials to publish a new package on npm; those packages are staged until additional approval and 2FA authentication is provided in the npm cli or on npmjs.com. This opt-in security control allows maintainers to ensure that any version of their package published has gone through this additional authorization. By decoupling the credentials used in CI/CD pipelines and automation from those that can publish to the registry, the attack chain from a CI/CD pipeline to a published package is broken.
Key points
- GitHub has implemented several improvements to disrupt supply chain attacks on npm and GitHub Actions.
- Preventive account protection for high-impact accounts has been added to npm.
- Safer pull_request_target defaults for GitHub Actions checkout have been implemented.
- Control over who and what triggers GitHub Actions workflows has been added.
- Read-only Actions cache for untrusted triggers has been implemented.
If these improvements are successful, they could significantly reduce the number of supply chain attacks on npm and GitHub Actions, making it harder for attackers to spread malware and compromise open-source projects. This could lead to a safer and more secure open-source ecosystem.
However, there is still a risk that attackers could find new ways to exploit these systems, and that the improvements made by GitHub may not be enough to prevent all supply chain attacks. This could lead to continued security issues and potential compromises of open-source projects.