The XZ Utils Backdoor: One Year Later, What Have We Learned?
A year after the discovery of the XZ Utils supply chain attack, examining what changed in open source security and what still keeps maintainers up at night.
On this page
March 29, 2024. Andres Freund, a PostgreSQL developer at Microsoft, noticed something odd. SSH connections to his Debian sid box were taking longer than usual - about 500ms of extra CPU time per connection.
What he found when he investigated would shake the open source community to its core.
A Quick Refresher
The XZ Utils backdoor (CVE-2024-3094) was a sophisticated supply chain attack that nearly compromised SSH authentication on most Linux distributions. The key points:
- A malicious maintainer (“Jia Tan”) spent 2+ years building trust in the xz-utils project
- Backdoor code was hidden in test files, activated only during package builds
- The backdoor hooked into OpenSSH via systemd’s liblzma dependency
- It would have allowed attackers to bypass SSH authentication entirely
The attack was caught literally days before it would have shipped in stable Debian and other major distributions.
What Changed
The Good
1. Increased Scrutiny of Build Systems
The xz backdoor exploited the gap between source code (which was clean) and binary packages (which contained the backdoor). This has led to:
- More distributions adopting reproducible builds
- Increased use of binary transparency logs
- Better tooling for comparing built packages against source
2. Maintainer Support Programs
Several initiatives launched to support critical open source maintainers:
- The Linux Foundation’s Alpha-Omega Project expanded funding
- GitHub’s Sponsors program got better visibility
- Companies started paying maintainers directly for security work
3. Identity Verification
The attacker used a pseudonymous identity with no verifiable real-world connection. Now:
- Many projects require identity verification for commit access
- Some require multiple maintainers to sign off on releases
- Package repositories are implementing stricter verification
The Bad
1. Maintainer Burnout is Worse
The aftermath created a chilling effect. Maintainers now face:
- Increased scrutiny and criticism
- Paranoia about accepting new contributors
- More work for already-overworked volunteers
One maintainer told me: “Now every time someone offers to help, I wonder if they’re the next Jia Tan. It’s exhausting.”
2. The Fundamental Problem Remains
Critical infrastructure still depends on:
- Unpaid volunteers
- Single points of failure
- Minimal security review
For every xz-utils that gets attention, there are thousands of similar projects with one stressed maintainer.
3. Detection Was Lucky
Let’s be clear: we got lucky. The backdoor was discovered because:
- One engineer noticed a performance regression
- He had the skills to investigate deeply
- The attackers made a timing mistake
If the backdoor had been slightly more optimized, or if Andres had been too busy that day, this would be in production everywhere.
The Technical Legacy
The xz backdoor was technically impressive in concerning ways. Some elements we’re still learning from:
Staged Payload Delivery
The backdoor wasn’t in the source repo. It was constructed during the build process from seemingly innocent test files. This is now a known attack pattern to watch for:
test_files/ + build_script = backdoor
Build systems need to be treated as part of the attack surface.
Targeted Activation
The backdoor only activated when:
- Built on Debian or RPM-based systems
- Using specific compiler flags
- The resulting binary was running as sshd
This level of targeting made it harder to detect during development.
Dependency Chain Exploitation
The attack exploited a non-obvious dependency:
sshd → systemd → liblzma (xz-utils)
Most people didn’t know sshd had any connection to xz compression. Mapping these hidden dependencies is now a priority.
What We’re Watching Now
A few concerning trends since the incident:
1. Copycat Attempts
There have been at least three public cases of suspicious contributors attempting the same playbook: build trust slowly, then request commit access. Projects are getting better at spotting these, but it’s a constant game.
2. Other Compression Libraries
XZ wasn’t special - it was just the one that got caught. Security researchers have been auditing similar projects. I won’t name specifics, but let’s say the audit findings haven’t been reassuring.
3. Nation-State Interest
The sophistication of the xz attack suggests nation-state involvement. There’s no public attribution, but the resources required - years of patient social engineering, sophisticated technical implementation - aren’t typical of financially-motivated attackers.
What You Should Do
If you run infrastructure:
- Audit your dependency trees, especially compression libraries
- Implement binary transparency checking where possible
- Fund the open source projects you depend on
- Have a response plan for supply chain compromises
If you’re a maintainer:
- Document your build process and make it reproducible
- Require multiple reviewers for sensitive changes
- It’s okay to be paranoid about new contributors
- Reach out if you need support - you’re not alone
If you’re a developer:
- Understand your transitive dependencies
- Verify package signatures and hashes
- Consider vendoring critical dependencies
- Participate in security reviews when you can
One Year On
The xz incident was a wake-up call. Whether we actually woke up is still TBD.
We’ve made progress on tooling and awareness. But the structural problems - volunteer maintainers, inadequate funding, complexity of modern software - remain largely unsolved.
The next xz-style attack isn’t a matter of if, but when. The question is whether we’ll get lucky again.
Further Reading
“In retrospect, it seems almost miraculous that it was caught.” - Bruce Schneier on the xz backdoor
Related Articles
AI Phishing Isn't the Problem Everyone Says It Is (Yet)
Hot take: the panic about AI-generated phishing is overblown. The real AI threat to security is different than what the headlines suggest.
BYOVD Is Out of Control and Nobody's Fixing It
Bring Your Own Vulnerable Driver attacks have gone from niche technique to standard playbook. After yet another incident, some thoughts on why we're losing this fight.
I Found Doordarshan.com on Sale for $2. Yes, THAT Doordarshan.
India's national TV broadcaster's .com domain is sitting on a Namecheap auction with a $2 starting bid, a $54,000 valuation, and zero bids. A 27-year-old digital oversight hiding in plain sight.