Skip to content

Commit cd9bea2

Browse files
committed
docs: add 2025 software supply chain compromises to catalog
Signed-off-by: Yannis Folias <[email protected]>
1 parent e4187f3 commit cd9bea2

File tree

8 files changed

+225
-6
lines changed

8 files changed

+225
-6
lines changed

community/catalog/compromises/2003/gentoo-rsync.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,4 @@ responsible for serving package sources to users.
1616

1717
## References
1818

19-
- https://archives.gentoo.org/gentoo-announce/message/7b0581416ddd91522c14513cb789f17a
19+
- [Gentoo Linux server compromised](https://www.zdnet.com/article/gentoo-linux-server-compromised/)
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
<!-- cSpell:ignore exfiltrated GHSA mrrh -->
2+
3+
# tj-actions/changed-files GitHub Action Compromise
4+
5+
In March 2025, attackers compromised the popular GitHub Action
6+
`tj-actions/changed-files`, used by over 20,000 repositories to detect file
7+
changes in pull requests.
8+
9+
The threat actor compromised a maintainer's credentials to manipulate Git tags,
10+
redirecting trusted version references to a malicious commit that executed code
11+
during CI/CD workflows.
12+
13+
The injected code captured environment variables and exfiltrated secrets such as
14+
GitHub tokens and API credentials to an external server. This compromise
15+
propagated silently through automated pipelines, as many users relied on mutable
16+
version tags (e.g., v35, v36) instead of immutable commit SHAs, meaning their
17+
workflows automatically pulled and executed the malicious code.
18+
19+
## Impact
20+
21+
This compromise had multiple implications across the GitHub Actions ecosystem
22+
as thousands of repositories were possibly exposed through automate workflows,
23+
any CI/CD runner secrets, repository tokens or organization credentials were
24+
potentially at risk, and overall demonstrated how a single third-party action
25+
could become a high-impact attack vector within trusted build automation
26+
pipelines.
27+
28+
## Type of Compromise
29+
30+
This is an _Attack Chaining_ type of attack as the attacker combined multiple
31+
weak links in the software delivery process.
32+
33+
## References
34+
35+
- [GitHub Advisory Database - GHSA-mrrh-fwg8-r2c3](https://github.com/advisories/GHSA-mrrh-fwg8-r2c3/)
36+
- [Wiz.io – GitHub Action tj-actions/changed-files Supply Chain Attack (CVE-2025-30066)](https://www.wiz.io/blog/github-action-tj-actions-changed-files-supply-chain-attack-cve-2025-30066)
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# The GhostAction Github Workflow Injection
2+
3+
In September 2025, GitGuardian discovered GhostAction campaign, a large-scale
4+
supply chain campaign in which attackers compromised 327 GitHub user accounts
5+
and injected malicious workflows into 817 repositories, stealing a total of 3,325
6+
secrets. The malicious workflows, often titled "Github Actions Security",
7+
were engineered to enumerate known secret names from legitimate workflow files
8+
(e.g. PyPI tokens, npm tokens, DockerHub, AWS keys) and exfiltrate them via HTTP
9+
POST to attacker-controlled endpoints.
10+
11+
## Impact
12+
13+
The GhostAction campaign compromised the trust and integrity of GitHub's
14+
publishing pipelines, exposing sensitive credentials from hundreds of
15+
open-source projects. The stolen secrets, including registry tokens and cloud
16+
provider keys, could enable attackers to publish malicious packages, access
17+
private infrastructure, or escalate to broader supply chain compromises across
18+
ecosystems like npm, PyPI, and DockerHub. This incident highlights how
19+
manipulating CI/CD workflows can undermine the integrity of the entire
20+
open-source distribution chain.
21+
22+
## Type of Compromise
23+
24+
This compromise falls under _Publishing Infrastructure_ category as the
25+
attackers were able to compromise the underlying automation layer used to build
26+
and publish software.
27+
28+
## References
29+
30+
- [The GhostAction Campaign: 3,325 Secrets Stolen Through Compromised GitHub Workflows](https://blog.gitguardian.com/ghostaction-campaign-3-325-secrets-stolen/)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<!-- cSpell:ignore Shai Hulud Shai hulud -->
2+
3+
# Widespread npm Ecosystem Supply Chain Attack
4+
5+
The Widespread npm Supply Chain Attack, which began around September 8, 2025,
6+
was a multi-phased incident. The initial phase involved a phishing campaign that
7+
compromised maintainer accounts, leading to the injection of a
8+
cryptocurrency-stealing payload into dozens of popular packages (like chalk and
9+
debug). This was quickly followed by the discovery of the "Shai-Hulud" worm
10+
campaign, which used a self-propagating credential-stealing malware to
11+
compromise over 500 npm packages.
12+
13+
## Impact
14+
15+
This compromise affected hundreds of packages and potentially thousands of
16+
downstream applications that automatically pulled the malicious versions. The
17+
injected payloads allowed for credential theft, unauthorized command execution,
18+
and persistent access in CI/CD environments. The incident exposed the fragility
19+
of transitive dependency trust and underscored the urgency of enforcing 2FA for
20+
maintainers, signed package publishing, and dependency integrity verification
21+
across the npm ecosystem.
22+
23+
## Type of Compromise
24+
25+
The npm ecosystem is a _Malicious Maintainer_ type of attack as the attackers
26+
managed to gain control of npm maintainer accounts and used their privileges to
27+
push malicious versions of legitimate packages.
28+
29+
## References
30+
31+
- [Breakdown: Widespread npm Supply Chain Attack Puts Billions of Weekly Downloads at Risk](https://www.paloaltonetworks.com/blog/cloud-security/npm-supply-chain-attack/)
32+
- [Ongoing Supply Chain Attack Involving npm Packages](https://www.csa.gov.sg/alerts-and-advisories/alerts/al-2025-093)
33+
- [Shai-hulud supply chain attack spreads token-stealing malware on npm](https://www.reversinglabs.com/blog/shai-hulud-worm-npm)
34+
- [npm Chalk and Debug Packages Hit in Software Supply Chain Attack](https://www.sonatype.com/blog/npm-chalk-and-debug-packages-hit-in-software-supply-chain-attack)
35+
- [Another npm Supply Chain Attack: The 'is' Package Compromise](https://www.stepsecurity.io/blog/another-npm-supply-chain-attack-the-is-package-compromise)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<!-- cSpell:ignore ngularity exfiltrated -->
2+
3+
# The Nx s1ngularity Attack Leading to Credentials Leak
4+
5+
On August 26, 2025, attackers released malicious versions of the nx and @nx/*
6+
npm packages (versions 20.9.0 through 21.8.0). The trojanized packages contained
7+
credential-harvesting malware that scanned each developer system for sensitive
8+
artifacts: GitHub tokens, npm keys, SSH private keys, environment variables,
9+
cryptocurrency wallet files, and AI tool configurations. The malware exfiltrated
10+
stolen credentials via double Base64 encoding and published them to over 1,400
11+
public GitHub repositories, each named in a "s1ngularity-repository-*" pattern
12+
with a single `results.b64` file containing encoded data.
13+
14+
## Impact
15+
16+
The Nx s1ngularity attack had an extensive impact across the open-source and
17+
enterprise ecosystem. In total, over 20,000 files were exfiltrated, affecting
18+
more than 1,700 users worldwide. The attackers leveraged stolen credentials to
19+
make at least 6,700 private GitHub repositories public, exposing sensitive
20+
source code, proprietary configurations, and credentials — some belonging to
21+
major organizations and high-profile projects. This extensive exposure
22+
underscored the cascading risk of software supply chain compromises, where a
23+
single poisoned package can rapidly undermine trust and security across
24+
thousands of interconnected development environments.
25+
26+
## Type of Compromise
27+
28+
This is an _Attack Chaining_ type of attack as it required multiple levels of
29+
compromise.
30+
31+
## References
32+
33+
- [Serious NX build compromise - what you need to know about the s1ngularity attack](https://www.kaspersky.com/blog/nx-build-s1ngularity-supply-chain-attack/54223/)
34+
- [The Nx "s1ngularity" Attack: Inside the Credential Leak](https://blog.gitguardian.com/the-nx-s1ngularity-attack-inside-the-credential-leak/)
35+
- [s1ngularity Nx Supply Chain Attack: AI-Driven Credential Theft & Mass Exposure](https://hivepro.com/threat-advisory/s1ngularity-nx-supply-chain-attack-ai-driven-credential-theft-mass-exposure/)
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<!-- cSpell:ignore Exfiltrated exfiltrated -->
2+
3+
# Oracle Cloud SSO and Identity Infrastructure Compromise
4+
5+
The Oracle Cloud data breach, publicly disclosed around March 21, 2025, involved
6+
a large-scale compromise of authentication and identity management systems. A
7+
threat actor operating under the alias "rose87168" announced on the black-hat
8+
forum BreachForums that they had exfiltrated a significant number of records
9+
from Oracle Cloud's federated Single Sign-On (SSO) login servers and Lightweight
10+
Directory Access Protocol (LDAP) systems.
11+
12+
The attacker claimed the initial infiltration occurred around mid-February 2025,
13+
possibly exploiting a vulnerability in an older, unpatched component of the
14+
infrastructure, such as Oracle Fusion Middleware 11G or a critical flaw in
15+
Oracle Access Manager (potentially related to CVE-2021-35587). The compromise is
16+
generally believed to have affected legacy Gen 1 servers and not the primary
17+
Oracle Cloud Infrastructure (OCI) Gen 2 environment.
18+
19+
## Impact
20+
21+
The impact was focused on the mass compromise of critical authentication data,
22+
significantly increasing security risks for numerous organizations. The 6
23+
million records stolen included sensitive credentials such as encrypted
24+
SSO/LDAP passwords, key files, and authentication tokens. This exposure created
25+
a high risk of unauthorized account takeover, corporate espionage, and lateral
26+
movement within affected customers' environments, particularly if the encrypted
27+
credentials could be cracked. Furthermore, the threat actor sought to monetize
28+
the breach through extortion, demanding fees from companies to remove their data
29+
from the leak. The incident led to CISA guidance on credential risk mitigation
30+
and resulted in class action lawsuits against Oracle for alleged failure to
31+
implement standard data security practices and timely disclosure.
32+
33+
## Type of Compromise
34+
35+
Even though this was not related to a software package, this is considered to be
36+
a _Publishing Infrastructure_ type of compromise as it originated from
37+
vulnerabilities within Oracle’s identity and authentication infrastructure, a
38+
critical part of its service publishing and access layer.
39+
40+
## References
41+
42+
- [CloudSEK – The Biggest Supply Chain Hack of 2025: 6M Records Exfiltrated from Oracle Cloud](https://www.cloudsek.com/blog/the-biggest-supply-chain-hack-of-2025-6m-records-for-sale-exfiltrated-from-oracle-cloud-affecting-over-140k-tenants)
43+
- [CVE-2021-35587 – Oracle Access Manager Remote Code Execution Vulnerability](https://nvd.nist.gov/vuln/detail/CVE-2021-35587)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<!-- cSpell:ignore exfiltrated -->
2+
3+
# Red Hat Consulting GitLab Instance Breach
4+
5+
In October 2025, Red Hat confirmed a security breach affecting a self-hosted
6+
GitLab instance used internally by its Consulting division. The threat actor
7+
group calling themselves Crimson Collective claimed responsibility, asserting
8+
they had exfiltrated approximately 570 GB of compressed data from 28,000 private
9+
repositories, including around 800 Customer Engagement Reports (CERs). These
10+
CERs often contain sensitive customer architecture diagrams, configuration files,
11+
authentication tokens, and infrastructure details.
12+
13+
## Impact
14+
15+
Attackers claim to have accessed a significant volume of sensitive consulting
16+
and customer data.Stolen CERs may reveal network topologies, access credentials,
17+
and deployment configurations for major enterprise clients. That kind of
18+
information could be leveraged for secondary intrusions or social engineering.
19+
While Red Hat has not confirmed any misuse of the stolen data, the incident
20+
highlights the inherent risk of third-party data exposure within vendor
21+
ecosystems. Red Hat emphasized that no personal data or software supply chain
22+
assets have been confirmed compromised at this stage.
23+
24+
## Type of Compromise
25+
26+
This is a _Publishing Infrastructure_ type of compromise as the compromise
27+
occurred within Red Hat’s internal GitLab environment, which is part of its
28+
development and collaboration infrastructure.
29+
30+
## References
31+
32+
- [Security update: Incident related to Red Hat Consulting GitLab instance](https://www.redhat.com/en/blog/security-update-incident-related-red-hat-consulting-gitlab-instance)
33+
- [Red Hat confirms security incident after hackers breach GitLab instance](https://www.bleepingcomputer.com/news/security/red-hat-confirms-security-incident-after-hackers-breach-gitlab-instance)
34+
- [Red Hat GitLab Data Breach: The Crimson Collective's Attack](https://blog.gitguardian.com/red-hat-gitlab-breach-the-crimson-collectives-attack/)

community/catalog/compromises/README.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ The goal is not to catalog every known supply chain attack, but rather to captur
88
many examples of different kinds of attack, so that we can better understand the
99
patterns and develop best practices and tools.
1010

11-
For definitions of each compromise type, please check out our [compromise definitions page](community/catalog/compromises/compromise-definitions.md)
11+
For definitions of each compromise type, please check out our [compromise definitions page](compromise-definitions.md)
1212

1313
We welcome additions to this catalog by [filing an
1414
issue](https://github.com/cncf/tag-security/issues/new/choose) or [github pull
@@ -29,6 +29,12 @@ of compromise needs added, please include that as well.
2929
<!-- cSpell:disable -->
3030
| Name | Year | Type of compromise | Link |
3131
| ----------------- | ------------------ | ------------------ | ----------- |
32+
| [Oracle Cloud SSO and Identity Infrastructure Compromise](2025/oracle-cloud.md) | 2025 | Publishing Infrastructure | [1](https://www.cloudsek.com/blog/the-biggest-supply-chain-hack-of-2025-6m-records-for-sale-exfiltrated-from-oracle-cloud-affecting-over-140k-tenants) |
33+
| [Widespread npm Ecosystem Supply Chain Attack](2025/npm-ecosystem.md) | 2025 | Malicious Maintainer | [1](https://www.paloaltonetworks.com/blog/cloud-security/npm-supply-chain-attack/) |
34+
| [Red Hat Consulting GitLab Instance Breach](2025/rh-gitlab-instance.md) | 2025 | Publishing Infrastructure | [1](https://www.redhat.com/en/blog/security-update-incident-related-red-hat-consulting-gitlab-instance) |
35+
| [The Nx s1ngularity Attack Leading to Credentials Leak](2025/nx-platform.md) | 2025 | Attack Chaining | [1](https://www.kaspersky.com/blog/nx-build-s1ngularity-supply-chain-attack/54223/) |
36+
| [The GhostAction Github Workflow Injection](2025/ghost-action.md) | 2025 | Publishing Infrastructure | [1](https://blog.gitguardian.com/ghostaction-campaign-3-325-secrets-stolen/) |
37+
| [tj-actions/changed-files GitHub Action Compromise](2025/changed-files.md) | 2025 | Attack Chaining | [1](https://github.com/advisories/GHSA-mrrh-fwg8-r2c3/) |
3238
| [Solana Web3.js Code Injection](2024/solana_web3js.md) | 2024 | Social Engineering/Phishing Attack | [1](https://www.reversinglabs.com/blog/malware-found-in-solana-npm-library-with-50m-downloads) [2](https://x.com/0xMert_/status/1864069157257613719) |
3339
| [Polyfill.io Infrastructure Takeover Leading to Malware Distribution](2024/polyfill.md) | 2024 | Publishing Infrastructure | [1](https://sansec.io/research/polyfill-supply-chain-attack) |
3440
| [Malware Disguised as Installer used to target Korean Public Institution](2024/targeted-signed-endoor.md) | 2024 | Trust and Signing | [1](https://asec.ahnlab.com/en/63396/) |
@@ -68,7 +74,7 @@ of compromise needs added, please include that as well.
6874
| [NPM reverse shells and data mining](2020/nodejs.md) | 2020 | Dev Tooling | [1](https://www.bleepingcomputer.com/news/security/npm-nukes-nodejs-malware-opening-windows-linux-reverse-shells/) |
6975
| [Binaries of the CLI for `monero` compromised](2019/monero.md) | 2019 | Publishing Infrastructure | [1](https://web.getmonero.org/2019/11/19/warning-compromised-binaries.html), [2](https://github.com/monero-project/monero/issues/6151), [3](https://web.archive.org/web/20230630012925/https://old.reddit.com/r/Monero/comments/dyfozs/security_warning_cli_binaries_available_on/) |
7076
| [Webmin backdoor](2019/webmin-backdoor.md) | 2019 | Dev Tooling | [1](https://www.zdnet.com/article/backdoor-found-in-webmin-a-popular-web-based-utility-for-managing-unix-servers/), [2](http://www.webmin.com/exploit.html) |
71-
| [purescript-npm](2019/purescript-npm.md) | 2019 | Source Code | [1](https://www.npmjs.com/advisories/1082) and [2](https://www.npmjs.com/advisories/1082) |
77+
| [purescript-npm](2019/purescript-npm.md) | 2019 | Source Code | [1](https://github.com/advisories/GHSA-jxf5-7x3j-8j9m) |
7278
| [electron-native-notify](2019/electron-native-notify.md) | 2019 | Source Code | [1](https://blog.npmjs.org/post/185397814280/plot-to-steal-cryptocurrency-foiled-by-the-npm), [2](https://komodoplatform.com/update-agama-vulnerability/)|
7379
| [PyPI typosquatting](2019/pypi.md) | 2019 | Negligence | [1](https://blog.reversinglabs.com/blog/suppy-chain-malware-detecting-malware-in-package-manager-repositories) |
7480
| [ROS build farm compromise](2019/ros.md) | 2019 | Trust and Signing <br>Publishing Infrastructure</br> | [1](https://discourse.ros.org/t/security-issue-on-ros-build-farm/9342/8), [2](https://discourse.ros.org/t/new-gpg-keys-deployed-for-packages-ros-org/9454) |
@@ -87,8 +93,8 @@ of compromise needs added, please include that as well.
8793
| [HandBrake](2017/handbrake.md) | 2017 | Publishing Infrastructure | [1](https://blog.malwarebytes.com/threat-analysis/mac-threat-analysis/2017/05/handbrake-hacked-to-drop-new-variant-of-proton-malware/) |
8894
| [Kingslayer](2017/kingslayer.md) | 2017 | Publishing Infrastructure | [1](https://comsecglobal.com/kingslayer-a-supply-chain-attack/) |
8995
| [HackTask](2017/hacktask.md) | 2017 | Negligence | [1](https://securityintelligence.com/news/typosquatting-attack-puts-developers-at-risk-from-infected-javascript-packages/) |
90-
| [NotPetya](2017/notpetya.md) | 2017 | Attack Chaining | [1](https://www.welivesecurity.com/2017/07/04/analysis-of-telebots-cunning-backdoor/) |
91-
| [Bitcoin Gold](2017/bitcoingold.md) | 2017 | Source Code | [1](https://bitcoingold.org/critical-warning-nov-26/) |
96+
| [NotPetya](2017/notpetya.md) | 2017 | Attack Chaining | [1](https://www.wired.com/story/notpetya-cyberattack-ukraine-russia-code-crashed-the-world/) |
97+
| [Bitcoin Gold](2017/bitcoingold.md) | 2017 | Source Code | [1](https://www.investopedia.com/news/bitcoin-gold-hack-shows-51-attack-real/) |
9298
| [ExpensiveWall](2017/expensivewall.md) | 2017 | Dev Tooling | [1](https://blog.checkpoint.com/2017/09/14/expensivewall-dangerous-packed-malware-google-play-will-hit-wallet/), [2](https://research.checkpoint.com/expensivewall-dangerous-packed-malware-google-play-will-hit-wallet/) |
9399
| [OSX Elmedia player](2017/elmedia.md) | 2017 | Publishing infrastructure | [1](https://www.hackread.com/hackers-infect-mac-users-proton-malware-using-elmedia-player/) |
94100
| [GitHub password recovery issues](2016/gh-unicode.md) | 2016 | Dev Tool <br> Source Code </br> | [1](https://bounty.github.com/researchers/jagracey.html), [2](https://dev.to/jagracey/hacking-github-s-auth-with-unicode-s-turkish-dotless-i-460n) |
@@ -110,6 +116,6 @@ of compromise needs added, please include that as well.
110116
| [WordPress backdoor](2007/wordpress.md) | 2007 | Source Code <br> Publishing Infrastructure </br> | [1](https://lwn.net/Articles/224997/) |
111117
| [SquirrelMail backdoor](2007/squirrelmail.md) | 2007 | Source Code <br> Publishing Infrastructure | [1](https://lwn.net/Articles/262688/) |
112118
| [Linux Kernel CVS Repository Hack](2003/kernel-repository.md) | 2003 | Source Code <br> Dev Tooling | [1](https://lwn.net/Articles/57135/) |
113-
| [gentoo rsync compromise](2003/gentoo-rsync.md) | 2003 | Publishing Infrastructure | [1](https://archives.gentoo.org/gentoo-announce/message/7b0581416ddd91522c14513cb789f17a) |
119+
| [gentoo rsync compromise](2003/gentoo-rsync.md) | 2003 | Publishing Infrastructure | [1](https://www.zdnet.com/article/gentoo-linux-server-compromised/) |
114120
| [Debian infra compromise](2003/debian.md) | 2003 | Publishing infrastructure | [1](https://www.debian.org/News/2003/20031202) |
115121
| [Unix Support Group login backdoor](1975/login-bell.md) | 1975 | Dev Tooling | [1](https://niconiconi.neocities.org/posts/ken-thompson-really-did-launch-his-trusting-trust-trojan-attack-in-real-life/) |

0 commit comments

Comments
 (0)