Software

Devops

Malicious xz backdoor reveals fragility of open source

This time, we got lucky. It mostly affected bleeding-edge distros. But that's not a defense strategy


Analysis The discovery last week of a backdoor in a widely used open source compression library called xz could have been a security disaster had it not been caught by luck and atypical curiosity about latency from a Microsoft engineer.

Yet the fortunate find has led industry observers to conclude not much will change to prevent this threat scenario from reoccurring, and that similar, ongoing efforts to compromise software infrastructure may have been missed.

"This might be the best executed supply chain attack we've seen described in the open, and it's a nightmare scenario: malicious, competent, authorized upstream in a widely used library," wrote open source cryptographer Filippo Valsorda. Meanwhile, Michał Zalewski, an ex-Googler now veep of security engineering at Snap, described the affair as "one of the most daring infosec capers" ever witnessed.

On Friday, Andres Freund, a principal software engineer at Microsoft and one of the developers of PostgreSQL, posted to the Openwall security mailing list that he had found a backdoor in liblzma, which is part of the xz package.

The xz software is used in many Linux distributions and in macOS for tasks like compressing release tarballs, kernel images, and the like.

But the backdoor was caught early – the malicious code only made it into a few bleeding-edge Linux distributions, such as the upcoming Fedora Linux 40; Fedora Rawhide developer distribution; Debian Unstable; and Kali Linux. Vulnerable distributions require glibc (for IFUNC, a way to make indirection function calls into OpenSSH authentication), and xz-5.6.0 or xz-5.6.1

It could have been much worse. According to Valsorda, the backdoor code enabled full remote code execution.

What appears to happen, simply put, is that on a machine that deploys a backdoored xz, the SSH daemon ends up loading the poisoned library during startup, via systemd, which alters the operation of the daemon. That meddling injects code that inspects incoming SSH connections for a specific set of circumstances that if met executes shell commands hidden in a payload supplied by the attacker during the connection initialization, giving the spy remote code execution on the machine.

This means that any machine with the vulnerable package that exposes SSH to the internet is potentially vulnerable

The backdoor is complicated and doesn't even fully appear in the xz repo, which now has an explanatory note from the maintainer. Instead, the malicious code spans multiple commits, some of which only appear in source code tarball releases as a presumed means of concealment.

"Currently, it appears as though the backdoor is added to the SSH daemon on the vulnerable machine, enabling a remote attacker to execute arbitrary code," said the Akamai Security Intelligence Group in a report on Monday. "This means that any machine with the vulnerable package that exposes SSH to the internet is potentially vulnerable.

"This backdoor almost became one of the most significant intrusion enablers ever — one that would’ve dwarfed the SolarWinds backdoor. The attackers were almost able to gain immediate access to any Linux machine running an infected distro, which includes Fedora, Ubuntu, and Debian. Almost."

According to Sam James, a Gentoo developer, who has assembled a summary of what's known so far, several malicious commits were made by someone called "Jia Tan" who first submitted a patch to the xz project in April 2022. That was followed by what appears to be a pressure campaign directed at xz maintainer Lasse Collin from a presumed sockpuppet account using the name "Jigar Kumar."

The incident attracted attention, in part, because it validates years of concern about the burden of maintaining software with little recognition or support. Responding to Kumar's provocation that xz needs a new maintainer because the current one has lost interest, Collin said in a mailing list post that his inaction reflected mental health concerns and other things. And he added, "It's also good to keep in mind that this is an unpaid hobby project."

A common interpretation among members of the security community is that this pressure campaign was the start of a long con – "Jia Tan" built up trust with apparently innocuous code submissions for about two years before submitting the backdoor code. One "Jia Tan" submission was a pull request to OSS-Fuzz, a security tool, to support disabling IFUNC, the mechanism that the malicious xz code uses to hook into SSH.

Microsoft security researcher Thomas Roccia’s diagram of the xz affair offers a succinct summary of the timeline of events.

The identity of "Jia Tan" (JiaT75) is not presently known. The name appears to be of Asian origin but there's also speculation that the name may represent an attempt to create an identity that people will assume is Chinese as a means of misdirection. An analysis of code commit times argues that the individual or group responsible operates out of Eastern Europe rather than Asia.

Sophisticated campaigns designed to compromise software projects over a long period of time suggest the involvement with a well-funded adversary, possibly with ties to an nation-state intelligence agency. However, there's no conclusive evidence to that effect at this point.

Gynvael Coldwind, MD of HexArcana Cybersecurity GmbH, said in an analysis of the malicious code, "I can't help but wonder (as I'm sure is the rest of our security community) – if this was found by accident, how many things still remain undiscovered." ®

Send us news
98 Comments

Rust for Linux maintainer steps down in frustration with 'nontechnical nonsense'

Community seems to C Rust more as a burden than a benefit

Alleged Karakut ransomware scumbag charged in US

Plus: Microsoft issues workaround for dual-boot crashes; ARRL cops to ransom payment, and more

Microsoft hosts a security summit but no press, public allowed

CrowdStrike, other vendors, friendly govt reps…but not anyone who would tell you what happened

Double Debian update: 11.11 and 12.7 arrive at once

But Bullseye's days are numbered and it's time to think about upgrading

Linux Deepin 23: A polished distro from China that Western desktops could learn from

A glimpse into the rapidly advancing world of Chinese open source

Brace for glitches and GRUB grumbles as Ubuntu 24.04.1 lands

Now the Numbat has been neatened, you can replace your Jellyfish – if you dare

Security biz Verkada to pay $3M penalty under deal that also enforces infosec upgrade

Allowed access to 150K cameras, some in sensitive spots, but has been done for spamming

Security boom is over, with over a third of CISOs reporting flat or falling budgets

Good news? Security is still getting a growing part of IT budget

Microsoft's Patch Tuesday borks dual-boot Linux-Windows PCs

Plus: Three-year-old ProxyOracle flaw added to CISA's exploited bugs list

CockroachDB scurries off to proprietary software land

As VC-owned fauxpen source biz yells 'show me the money,' more may follow to the peril of the community

White House thinks it's time to fix the insecure glue of the internet: Yup, BGP

Better late than never

CrowdStrike's meltdown didn't dent its market dominance … yet

Total revenue for Q2 grew 32 percent