Live data from Hacker News

What we know about the xz Utils backdoor that almost infected the world

arstechnica.com

291–300 of 336 posts

Re: What we know about the xz Utils backdoor that almost infected the world

#291

Earlier quoted context omitted.

This is almost impossible for remote OSS maintainers. Do you want people to upload passports? And what if a three agency can easily produce whatever material you want?

Sounds like it's time for someone to either pay a few visits to the remote maintainer or give them a scholarship for attending a few conferences.

The reality of such criteria is that it will be a ladder-pull for any new entrants.

Not a workable option, full stop.

Re: What we know about the xz Utils backdoor that almost infected the world

#292
post #161

Earlier quoted context omitted.

If you actually come from BSD, you'd hopefully recognize a set of different utilities combined to form a holistic system released under a single name. It's not a new idea. Besides, the gpp is incorrect: systemd dependencies are not needed for initialisation notifications.

I think there's a low-effort solution to GP: Just split off the notification function for now. There's a dilemma here: Make a huge number of tiny libraries and people complain about left-pad. Make a monolith and this type of attack can happen. If left-pad is more preventable, let's go that way. The fact that C and C++ have tons of overhead in producing a package is their problem to deal with through better tooling.

> Make a huge number of tiny libraries and people complain about left-pad.

Making a number of similar libraries that would be better served as some sort of common set (i.e. even at the most basic level, right pad and left pad can be in one thing, RIGHT?)... but at the same time it's a particularly bad example because the overall behavior of that tread was a form of influencer growth hacking.

that said, I think something like a 'notification function' falls into the category of 'boundary API' and those should always be segregated where possible for security as well as maintenance purposes for all parties.

Re: What we know about the xz Utils backdoor that almost infected the world

#294

Earlier quoted context omitted.

Yes, but there was some way to put them back my elf metadata

How?

I looked at this again and I think it implies that there /would/ be a way but it's not really standardized how to do it yet?

https://github.com/systemd/systemd/pull/31131#issuecomment-1...

Re: What we know about the xz Utils backdoor that almost infected the world

#295
post #47

Earlier quoted context omitted.

It is unfortunate that Lasse Collin has been silent about what he knows about him

Can we not dogpile Lasse after his vacation was ruined by this. He has much bigger concerns right now than trying to export and sanitize his entire communication history with Jia.

I have a lot of respect for xz's original author, I just didn't think about the legal stuff, and that sounds quite reasonable to me now.

Personally, I find it hard to subscribe to certain theories, such as the possibility of Lasse being impersonated or involved in the incident. But that doesn't mean we should dismiss them outright at this stage. (And I'm sorry if you don't like to hear that, saying this is not comfortable for me either).

Re: What we know about the xz Utils backdoor that almost infected the world

#297
"OpenSSH, the most popular sshd implementation, doesn't link the liblzma library, but Debian and many other Linux distributions add a patch to link sshd to systemd, a program that loads a variety of services during the system bootup. Systemd, in turn, links to liblzma, and this allows xz Utils to exert control over sshd."

Compare with:

"Xz is an open-source compression program, as well as a library that can be used to help you write your own program that deals with compressed data. It is used by a fairly large number of other programs, one of which is OpenSSH."

https://news.ycombinator.com/item?id=39881049

GNU's binutils links to liblzma. binutils is even more ubiquitous than OpenSSH; in most cases it's probably used in the compilation of OpenSSH, the operating systems on which sshd runs, and so on. The bad guys certainly picked a good project to potentially get deep into open source software.

Re: What we know about the xz Utils backdoor that almost infected the world

#299
post #284
post #88

Earlier quoted context omitted.

Satire is so hard on the Internet and maybe I'm just thick headed. Just to clarify things, is that a suggestion to shove a JSON parser into either bash or autoconf?

JSON is too far, says the engineering culture still relying on a pile of shell scripts like it’s 1970. (that’s unfair, there’s probably tooling to build the shell scripts automatically I bet)

... The engineering culture which gave us 200kb fragile, semi-autogenerated configure scripts checked in to our repositories. Configure scripts which - as we've just seen - are a great place to hide malicious code.

I can't take this criticism seriously. 200kb of configure script = good, 1000 lines of JSON parser in bash = bad? What?

Re: What we know about the xz Utils backdoor that almost infected the world

#300
post #272
post #103

What I haven't seen discussed much is the linking mechanism that allowed the lib to hook into RSA_public_decrypt. Plenty of talk about what could or could not be achieved by even more process separation and the like, but little about that function call redirect. Could it be possible to establish a way to link critical components like the code for incoming ssh with libraries in some tiered trust way? "I trust you when…

From what I can tell the problem is the use of glibc's IFUNC. This broke the testing for XZ, suddenly accounts appeared to lobby for disabling that testing, which enabled the exploit.

IFUNC is arguably not the real issue. IFUNC was used to create a function that will be called on library load (since you need a resolver function to decide which function to map in). There are other ways to create "callback on library load" as well. I think ifunc was actually used for obfuscation instead. Jia Tan created a somewhat plausible scenario of using ifunc's to select which CRC function at load time to use for performance reasons (whether that actually increases performance is arguable but at least plausible). The malicious version swapped the resolver function to be a malicious one but either way it's just a way to create a function that can be called on library init.

The actual hook for intercepting the call was done via audit hooks.

So I guess it's really two things working together.

Post reply on HN