Poisoned Pipeline / Techniques / T0172
Runtime backdoor
A runtime backdoor attack is a type of cyber attack where an attacker gains unauthorized access to a computer system or network and installs a malicious software or code that allows them to control the system or steal sensitive information.
This type of attack is called a "runtime" backdoor attack because it involves manipulating the system at runtime, while it is running, rather than during the development or deployment stages.
The attacker typically gains access to the system through a vulnerability, such as an unpatched software flaw or weak authentication mechanism.
Once inside, the attacker can install a backdoor that provides them with persistent access to the system, even after the initial entry point has been closed.
Where this idea came from
Identified in published CI/CD or supply-chain security research cited below.
- https://www.cyberark.com/resources/blog/the-anatomy-of-the-solarwinds-attack-chain
- https://portswigger.net/daily-swig/software-supply-chain-attacks-everything-you-need-to-know
- https://www.littlefish.co.uk/insights/backdoor-vulnerability-supply-chain-attacks/
Mitigations
- M1720 Implement regular patches and updates
- M1500 Verify third-party artifacts and open-source libraries
- M1501 Require SBOM from all third-party suppliers
- M1502 Define trusted package managers and repositories
- M1503 Implement SCA analysis
Detections
- D1510 Implement Intrusion Detection System and anti-malware
- D1520 Implement endpoint detection and response system
Observed in incidents (84)
- IoliteLabs Solidity extensions shipped backdoor
- ircII source installed account backdoor
- Wrapper Link Elementor plugin created backdoors
- mrmustard 0.7.4 PyPI credential stealer via stolen publish token
- PEAR installer served Perl backdoor
- ProFTPD site served backdoored source
- Blaze Widget plugin created backdoors
- ssh-decorate PyPI releases stole SSH credentials
- express-session-js typosquat paste-service RAT
- TXTBOOK dependency confusion against Tinkoff / T-Bank
- CCleaner 5.33 signed ShadowPad backdoor
- Linux bk2cvs mirror received backdoor
- Malicious Go modules (obfuscated payloads, SSH lure, proxy cache)
- tcpdump.org source tarballs trojanized
- SleeperGem (git_credential_manager, Dendreo, fastlane plugin)
- bfunky/http-parser Packagist package backdoored with host stealer
- Essential Plugin WordPress.org portfolio backdoor
- xrpl.js npm package stole wallet seeds
- Non-npm registry one-offs (NuGet, Maven xz, Laravel Packagist, evm-units)
- wu-ftpd tarball shipped backdoor
- php.net git server Zerodium backdoor
- OpenSSH tarballs shipped trojan horse
- rand-user-agent carried RAT
- vsftpd distribution site served backdoor
- TraderTraitor interview repos point Terraform at a lookalike provider registry
- @joyfill/components and @joyfill/layouts obfuscated RAT
- GhostAction steals CI secrets, then autoruns a stealer from a fake font
- MacSync via signed fake Claude Desktop installers on a lookalike download site
- IronWorm backdoored Arweave ecosystem npm packages
- monkey.org tarballs shipped backdoors
- ARVE WordPress plugin shipped a hardcoded admin backdoor
- OpenX Source archive backdoored
- Sendmail FTP tarball shipped trojan
- Ledger Connect Kit shipped wallet drainer
- SolarWinds
- TeamPCP backdoored the Cemu 2.6 Linux release assets
- Linux Mint downloads served backdoored ISO
- XZ Utils backdoor
- Bitcoin Gold wallet generated weak keys
- ctx PyPI account stole environment variables
- MYRA Linux RAT via apintergrationpost
- Malicious Go crypto module Rekoobe backdoor
- getcookies backdoor reached mailparser dependency chain
- mathmain / mathsbase encrypted npm RAT (equation trigger)
- Xinference PyPI release stole credentials
- rest-client gem backdoor stole credentials
- Social Warfare plugin created backdoors
- @mastra scope poisoned via typosquat easy-day-js
- util-linux source archive trojanized
- Telegram, Discord, and WhatsApp-developer malware packages
- Seven fake NebulaAI npm packages drop a Windows KNTRAT at install
- @solana/web3.js stole private keys
- ulid-xyz RAT via ioredis-xyz transitive chain
- turbo-axios / faster-axios Epsilon Stealer typosquats
- loltestpad campaign (ixpresso-core / exiouss)
- Top.gg Python SDK stole credentials
- Irssi configure script backdoored
- forge-jsx / forge-jsxy Autodesk-themed npm RAT
- ANIMAL trojan replicated across mainframes
- Contagious Interview stage-2 in Git pre-commit / post-checkout hooks
- Forty-two RubyGems from reqthrottle_3474 run a reverse shell or a crypto stealer at install
- HandBrake mirror delivered Proton RAT
- Webmin 1.890–1.920 build-server backdoor
- Operation Navy Ghost fake pyrogram packages on PyPI
- Simply Show Hooks plugin created backdoors
- npm RAT cluster targeting Alibaba developers
- Ken Thompson implements compiler backdoor demo
- WordPress.org plugins created admin backdoors
- node-env-resolve full RAT
- ShapedPlugin Pro builds backdoored in the vendor pipeline
- js-logger-pack probe to infostealer to dropper
- Named npm malware families (Skeleton Squad, Skuld, Quasar, FezBox, Koishi)
- Graphalgo spreads to Terraform providers and Go modules
- Graphalgo spreads to Terraform providers and Go modules
- strong_password Ruby gem backdoor stole secrets
- LiteLLM 1.107.0 built from a lookalike repository shipped a startup-hook stealer and hourly loader
- Monero CLI binaries stole wallet seeds
- Neutralinojs org force-push (DPRK / PolinRider)
- UNC7017 swapped AOMEI update config for minutes at a time
- DirtyBlanket fake Express/React packages spread a self-propagating Linux worm
- AccessPress add-ons created backdoors
- Trojanized fork martinez-polygon-clipping-tony
- Contact Form 7 addon created backdoors
- mgc npm account takeover RAT