Poisoned Pipeline / Techniques / T0184
Harvesting sensitive information from files
This attack involves searching for files within the CI/CD system that may contain sensitive information such as credentials, API keys, or other access tokens.
These files can include configuration files, scripts, and other files that are used as part of the build and deployment process.
Attackers can use various techniques to locate these files, including directory traversal attacks, file inclusion vulnerabilities, or simply guessing common file names or paths.
Once the attacker has located a file containing sensitive information, they can extract the credentials and use them to gain unauthorized access to the targeted system or application.
Where this idea came from
Identified in published CI/CD or supply-chain security research cited below.
Mitigations
- M1120 Store credentials in vault
- M1550 Implement strict access control for clouds
- M1860 Implement strong authentication mechanisms
- M1861 Implement strong authorization mechanisms
Detections
- D1260 Implement regular security audit and review
- D1510 Implement Intrusion Detection System and anti-malware
- D1590 Implement continuous monitoring and logging of the CI/CD process
Observed in incidents (110)
- common-tg-service 502 versions Telegram hijack
- IoliteLabs Solidity extensions shipped backdoor
- TrapDoor crypto stealer across 34 packages
- big.js typosquats sjs/bjs/cjs-biginteger SSH backdoors
- ircII source installed account backdoor
- Wrapper Link Elementor plugin created backdoors
- Five NuGet packages impersonate Chinese UI libraries
- got-fetch 5.1.11/5.1.12 Pycoon stealer
- Fake Braintree NuGet card skimmer
- lottie-player prompted wallet drains
- mrmustard 0.7.4 PyPI credential stealer via stolen publish token
- Kong Ingress image shipped cryptominer
- Firefox Add-ons crypto-wallet theft
- PEAR installer served Perl backdoor
- ProFTPD site served backdoored source
- Blaze Widget plugin created backdoors
- WooCommerce carding PyPI package
- DarkGPT / Codo-AI / bitcoin-auto-trading VS Code extensions
- Fake corepack.org infostealer and proxyware
- noon-contracts Noon Protocol SDK RAT
- Stolen GitHub tokens planted a secret-dumping workflow in 850+ accounts and pulled the logs back through the API
- ssh-decorate PyPI releases stole SSH credentials
- tensorlake 0.5.144 steals tokens, then wipes the home directory if they are revoked
- express-session-js typosquat paste-service RAT
- Linux bk2cvs mirror received backdoor
- tcpdump.org source tarballs trojanized
- bfunky/http-parser Packagist package backdoored with host stealer
- @subql/common 5.8.3 published after a CI artifact swap
- Essential Plugin WordPress.org portfolio backdoor
- xrpl.js npm package stole wallet seeds
- Malicious Firefox extension hijacks Google accounts
- Five Rust crates as time utilities steal .env
- XPACK npm install-time crypto extortion (HTTP 402)
- wu-ftpd tarball shipped backdoor
- Twitch browser extension leaks 30k OAuth tokens
- OpenSSH tarballs shipped trojan horse
- rand-user-agent carried RAT
- Polymarket fake-bot and wallet-key npm campaign
- Four NuGet packages JIT-hook ASP.NET credential theft
- vsftpd distribution site served backdoor
- @joyfill/components and @joyfill/layouts obfuscated RAT
- GhostAction steals CI secrets, then autoruns a stealer from a fake font
- 108 Chrome extensions shared-C2 session theft
- IronWorm backdoored Arweave ecosystem npm packages
- monkey.org tarballs shipped backdoors
- ARVE WordPress plugin shipped a hardcoded admin backdoor
- OpenX Source archive backdoored
- @copilot-mcp/apex macOS infostealer republish
- StegaBin 26 packages Pastebin steganography stealer
- J7Tracker / VREO / Orbit Tracker steal Axiom and Padre session and wallet data
- Apex Accelerator published a malicious npm coding agent and a fake audit MCP
- Sendmail FTP tarball shipped trojan
- Ledger Connect Kit shipped wallet drainer
- TeamPCP backdoored the Cemu 2.6 Linux release assets
- Linux Mint downloads served backdoored ISO
- Bitcoin Gold wallet generated weak keys
- ctx PyPI account stole environment variables
- electron-native-notify planted in Agama / Komodo wallet
- Malicious Go crypto module Rekoobe backdoor
- PyPI typosquats (passlib, fabric, cookie lib, AnyDesk, Deezer, Instagram)
- getcookies backdoor reached mailparser dependency chain
- Azazel harvested GitLab CI secrets and called a local MCP tool on a victim
- GlassWorm-hijacked contributor replaced OVHcloud CLI release assets on five published versions
- Xinference PyPI release stole credentials
- rest-client gem backdoor stole credentials
- Social Warfare plugin created backdoors
- Virtualizor panel update delivered via BGP hijack of Softaculous update/billing infrastructure
- @mastra scope poisoned via typosquat easy-day-js
- 60 malicious RubyGems targeted credential theft
- util-linux source archive trojanized
- Telegram, Discord, and WhatsApp-developer malware packages
- NuGet Sicoob SDK impersonation
- Railway build-infrastructure access decrypted a subset of customer environment variables
- StubMaker RubyGems (and npm) Windows infostealer
- Go packages impersonate Google UUID library
- @solana/web3.js stole private keys
- testmetest npm names ship a Miasma-family worm that wipes the home directory if a stolen GitHub token is revoked
- loltestpad campaign (ixpresso-core / exiouss)
- Top.gg Python SDK stole credentials
- Exposed operator staging host reveals autonomous AI-agent crypto-theft fleet
- Irssi configure script backdoored
- WeaselBiscuit npm import-time stealer
- ANIMAL trojan replicated across mainframes
- Fake imToken Chrome extension seed-phrase theft
- Forty-two RubyGems from reqthrottle_3474 run a reverse shell or a crypto stealer at install
- HandBrake mirror delivered Proton RAT
- Typosquatted AI-tool npm packages under a real-identity publisher
- Simply Show Hooks plugin created backdoors
- Chrome and Edge crypto-wallet drainer extensions
- Ken Thompson implements compiler backdoor demo
- WordPress.org plugins created admin backdoors
- ShapedPlugin Pro builds backdoored in the vendor pipeline
- Finch crate impersonation credential theft
- durabletask PyPI multi-cloud credential stealer
- Named npm malware families (Skeleton Squad, Skuld, Quasar, FezBox, Koishi)
- strong_password Ruby gem backdoor stole secrets
- LiteLLM 1.107.0 built from a lookalike repository shipped a startup-hook stealer and hourly loader
- 3CX Desktop
- sckit worm in MemTensor npm plugin and PyPI MemoryOS
- Monero CLI binaries stole wallet seeds
- DirtyBlanket fake Express/React packages spread a self-propagating Linux worm
- Malicious ClawHub / OpenClaw skills
- @fairwords credential worm
- Microsoft counterfeit-installer campaign — same-named archives regenerate server-side per download
- AccessPress add-ons created backdoors
- Contact Form 7 addon created backdoors
- RevStealer trojanized Electron apps via fake Claude desktop and cheat sites
- BRIDGEHEAD npm typosquats jump WSL to a Windows wallet stealer
- Crypto-developer package theft (Flashbots, BSC, Solana, TON)
- Socket Chrome-extension theft cluster