Trusting-Trust Attack via strip Backdoors NixOS Builds
Ken Thompson's trusting-trust attack just escaped the compiler. A new paper on arXiv demonstrates a complete trusting-trust attack built around GNU strip — a utility that neither reads nor generates source code, only rewrites finished ELF binaries. In NixOS's bootstrap, one tampered strip in the binary seed propagates a payload through every subsequent generation, survives after the seed leaves the dependency closure, and backdoors almost every binary in a complete graphical installer — with zero build failures.
What shipped
The paper — by security researcher Julien Malka (of the Nix bootstrapping work) — flips the received wisdom. Thompson's 1984 attack was treated as compiler-specific: compromise the compiler, and it recompiles itself with the backdoor intact. Malka shows the same self-reproducing structure works with strip, a post-link tool, on a real nixpkgs revision. The backdoor survives the bootstrap from seed to final standard environment, and the resulting installer ships subverted binaries that can execute arbitrary malicious behavior.
Why it matters
Source audits just lost a layer of cover. The attack never touches source files — it only manipulates ELF binaries post-link, which means reviewing what gets compiled misses it entirely. If your reproducible-build story bottoms out in a trusted binary seed (and most do), this is that seed turned against you.
The defense is uncomfortable: verify binaries themselves, build bootstrap chains from the smallest possible trusted seed, and treat every tool between source and distribution — not just compilers — as attack surface. The trusting-trust problem was never really about compilers. It was always about anything that processes binaries.
Verdict: the rare paper that actually narrows a 40-year-old gap. Worth the read before your next supply-chain audit.