Trusting-Trust Attack Escapes the Compiler: GNU strip Backdoors All of NixOS
Ken Thompson’s classic trusting-trust attack — where a compromised compiler injects a backdoor into everything it builds, including future copies of itself — has long been treated as a compiler-specific problem. New research demolishes that assumption by pulling off the same self-perpetuating attack using GNU strip, a mundane build utility that never reads or emits source code. The entire attack is carried out through manipulation of already-compiled ELF binaries, showing that any tool touching build artifacts can host the payload, not just the compiler.
The researchers weaponize this against NixOS’s bootstrap process. A single tampered strip planted in the binary seed implants a payload that hands itself from one generation of strip to the next. Critically, the backdoor survives into the final standard build environment even after the original seed drops out of the dependency closure — meaning the tainted origin leaves no trace in the finished system’s dependencies. Running against a real nixpkgs revision, the attack cleanly builds a complete graphical installer and backdoors nearly every binary it produces.
The significance is a sharp expansion of the trusting-trust threat model for supply-chain security. Reproducible-build and bootstrap-from-seed efforts, which projects like NixOS use precisely to establish trust, are undermined if any non-compiler tool in the seed can self-propagate a backdoor invisibly. It reframes binary seeds — not just compilers — as high-value targets, and argues that trust anchoring must extend to every utility in the bootstrap path.
Read the full article
Continue reading at Hacker News →This is an AI-generated summary. Read the original for the full story.