Poisoned Pipeline / Techniques / T0113
Compromised user account
A compromised user account is a serious security threat, as attackers can use it to bypass security measures that are in place to protect an organization's assets.
Attackers can gain access to legitimate user accounts in several ways, including brute-force attacks, phishing, malware, or social engineering.
Once an attacker gains access to a user's account, they can access the cloud resources, artifact repository, infrastructure-as-code templates, or source code repository to steal or modify sensitive data or launch further attacks.
In such case an attacker is able to modify the code and cloud resources, inject malware or backdoors, or replace legitimate artifacts.
This can result in data breaches, system downtime, reputation damage, and financial losses.
Where this idea came from
Identified in published CI/CD or supply-chain security research cited below.
- https://blog.gitguardian.com/poisoning-the-source-how-and-why-attackers-are-targeting-developer-accounts/
- https://rhinosecuritylabs.com/aws/aws-iam-credentials-get-compromised/
Mitigations
- M1130 Implement password rotation
- M1131 Disable or lock compromised accounts
- M1132 Enable MFA for user accounts
- M1450 Implement zero trust
- M1451 Use network segmentation
- M1550 Implement strict access control for clouds
- M1661 Revoke user permissions
Detections
- D1130 Implement account activity monitoring
- D1131 Implement SIEM
- D1510 Implement Intrusion Detection System and anti-malware
- D1520 Implement endpoint detection and response system
Observed in incidents (31)
- npm event-stream / flatmap-stream
- got-fetch 5.1.11/5.1.12 Pycoon stealer
- Forged and timestamp-cloned commits planted a preinstall dropper in hugo-paper and mevn-cli
- mrmustard 0.7.4 PyPI credential stealer via stolen publish token
- dYdX packages after maintainer compromise
- CCleaner 5.33 signed ShadowPad backdoor
- PolinRider poisons visanduma/nova-two-factor Packagist via Git
- node-ipc 9.1.6 / 9.2.3 / 12.0.1 DNS-exfil stealer
- Toptal GitHub org hijack 10 malicious packages
- GhostAction steals CI secrets, then autoruns a stealer from a fake font
- JuiceStealer PyPI phishing and typosquats
- Spoofed Dependabot commits and secret-stealing Actions
- SolarWinds
- art-template 4.13.3–4.13.7 ownership-transfer hijack
- GlassWorm-hijacked contributor replaced OVHcloud CLI release assets on five published versions
- Famous Chollima compromised Packagist package
- @mastra scope poisoned via typosquat easy-day-js
- Deep-Live-Cam malicious git dependency
- eslint-scope and eslint-config-eslint malicious publishes
- Compromised Injective SDK on npm
- npm is 3.3.1 / 5.0.0 via phished old maintainer
- crates.io arrayref / proc-macro1 build-time dropper
- GHAPPIER loader via @dforge-core/dforge-mcp trusted publishing
- 3CX Desktop
- npm chalk / debug maintainer phishing (Qix)
- ua-parser-js npm account takeover
- Neutralinojs org force-push (DPRK / PolinRider)
- PolinRider (DPRK) Git-to-registry jump
- mgc npm account takeover RAT
- eslint-config-prettier phishing (npnjs.com) and node-gyp.dll
- DuckDB npm account compromised