Poisoned Pipeline / Incidents / AS7
XZ Utils backdoor
Over roughly two years a persona known as Jia Tan slowly gained maintainer
trust on xz/liblzma, then shipped a stealth backdoor in versions 5.6.0 and
5.6.1. The implant hid in test files and the build system, not in obvious
C sources, and activated during the build of systemd-linked sshd on some
Linux distributions. Discovery was accidental (Andres Freund, March 2024)
before the backdoored packages reached most stable releases. This is the
canonical "patient social engineering of an open-source maintainer" case.
Mapped techniques
- T0111 Malicious code contribution to an open-source repository
- T0138 Backdoor in code
- T0198 Malicious Build Time Dependencies
- T0191 Malicious code in artifacts
- T0170 Malicious compiler or interpreter
- T0150 Runtime logic bomb
- T0172 Runtime backdoor
- T0201 Customers compromised
supply-chain xz / liblzma project
The attacker spent years contributing legitimate-looking patches and
pressure on the original maintainer until they obtained release rights.
Malicious code was introduced into the xz tarball via obfuscated test
files and build-script glue rather than a readable source change.
The payload assembled at build time from binary test blobs, which
source-oriented SBOM and review workflows missed.
Released tarballs 5.6.0/5.6.1 contained the backdoor; git checkout
alone did not always match the published artifacts.
IFUNC resolvers and the build toolchain were abused so the backdoor
only fully appeared in the linked sshd binary.
post-supply-chain Linux distributions / sshd users
The backdoor armed only in specific builds (systemd-linked sshd) and
stayed inert in others — a selective runtime trigger.
Compromised liblzma would have given the operator a silent pre-auth
hook in sshd on affected systemd builds.
Any distro or product that consumed the backdoored tarball would have
shipped a compromised SSH stack to its users.
Framework gaps noted
- Long-horizon social engineering of OSS maintainers is only weakly named (closest T0111); a dedicated "maintainer capture" technique is still a candidate.
- Artifact-vs-VCS divergence (release tarball not matching git) is implied by T0191 but not a first-class technique.