Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. GPT-6 Sol and Luna(openai.com)
    332comments
  2. Claude Opus 5.5(anthropic.com)
    595comments
  3. OpenAI GPT–6 Astra breaks Enigma message that has resisted solution since 2005(cryptocellar.org)
    330comments
  4. Claude Opus 5.5 Intelligence, Performance and Price Analysis (Max)(artificialanalysis.ai)
    43comments
  5. WordPress: Unauthenticated path traversal leading to conditional RCE(github.com/wordpress)
    43comments
  6. Pentagon: Palantir AI Overreliance Led to Strike Killing 123 Iranian Children(gizmodo.com)
    43comments
  7. Unreal Agent(unreallabs.ai)
    11comments
  8. There's a high chance of devices being sold with GrapheneOS preinstalled in 2027(grapheneos.social)
    69comments
  9. OpenAI is well positioned to fast-follow Jev(arcturus-labs.com)
    156comments
  10. SAML: A Fractal of Bad Design(trailofbits.com)
    1comments
  11. 16-bit Intel 8088 chip (c. 1985)(allpoetry.com)
    10comments
  12. Launch HN: Coverage Cat (YC S22) – Umbrella insurance via your personal agent(coveragecat.com)
    20comments
  13. Writing Rust code that's fast by asking agents to make the code faster(minimaxir.com)
    38comments
  14. George Lucas Returns to Earth, Bearing Gifts(commonedge.org)
    9comments
  15. Apple has added persistent 'ads' to iOS, and it's driving users crazy(techradar.com)
    358comments
  16. Solitaire Alone Together(solitairealonetogether.com)
    25comments
  17. Show HN: Drop – A rootless Linux sandbox with gVisor support(droprun.sh)
    43comments
  18. Show HN: AI·rete·RAG – a Rete rule engine decides, RAG explains why(ai-rete-rag.com)
    2comments
  19. Can gzip be a language model?(nathan.rs)
    135comments
  20. A study of sequence weighting at scale(janestreet.com)
    discuss
  21. One Minute Park(oneminutepark.tv)
    5comments
  22. AMD's random number generator can't generate a 0?(flatassembler.net)
    169comments
  23. Explaining to business people why building software is still hard(manager.dev)
    1comments
  24. Truman World(trumanworld.live)
    31comments
  25. The Economics of Open-Weight Inference(ornn.com)
    25comments
  26. Relativistic raytracing(publish.obsidian.md)
    5comments
  27. Show HN: InstinctFlash – Run 5B world-action models in real time on Jetson Thor(github.com/general-instinct)
    2comments
  28. Training a model to identify AI-generated web content from structure alone(arxiv.org)
    2comments
  29. MUNI Heritage Weekend in San Francisco(lawrence.lu)
    28comments
  30. Side-stepping the Secretary Problem, unwittingly(evalapply.org)
    2comments

FAQ on the xz-utils backdoor

141 pointsby 2y agogist.github.com
30 comments
2y agoHN ↗

The release tarballs upstream publishes don't have the same code that GitHub has. This is common in C projects so that downstream consumers don't need to remember how to run autotools and autoconf.

This doesn't seem really vital to the attack, but it's a silly outdated convention. Nobody is manually downloading and compiling tarballs these days, and those who do can figure out how to use autotools.

2y agoHN ↗

Yeah terrible idea. Either you should commit the output of autoconf (and enforce keeping it up to date via CI), or much much better - stop using autoconf! It belongs in the 90s!

2y agoHN ↗

It's another case of that "yes, it sucks. But the alternatives just plain don't work, or work in WAY fewer circumstances".

If I have a strange architecture or install, autoconf is often the only one that works.

2y agoHN ↗

What strange architecture are you talking about? I don't think the cost of supporting dead architectures is worth it.

CMake is a clear better choice (it also sucks but it sucks waaaay less).

2y agoHN ↗

I didn't want to start shitting on alternatives, but cmake is in my experience clearly the worst of all options.

It seems that more often than not, cmake setups work on the developer's own machine and nothing else. And the choice of undocumented "-DSOMETHING" is about as user hostile as it gets.

2y agoHN ↗

Reminds of the note at the bottom of Fish releases. It's there because the build system cannot determine the current version for some reason. Hopefully that will go away now that they have switched to a different language / build system. The custom tarball is used by Arch Linux at the very least.

https://github.com/fish-shell/fish-shell/releases/tag/3.7.1

https://github.com/fish-shell/fish-shell/issues/7772#issueco...

https://gitlab.archlinux.org/archlinux/packaging/packages/fi...

2y agoHN ↗

Yes, and in fact, it's quite a huge pain even in the packaging side.

Everytime I have to deal with autotools in nixpkgs, I end up having to rewrite the derivation to build from actual freaking source instead of a pre-mangled non-release tarball.

In fact, this makes me want to RFC *banning* release tarball usage.

2y agoHN ↗

you mean like LLVM’s source release tars? yeah, who would do that, haha?

2y agoHN ↗

Flagged: How is this "via a project dev"? Which project? The guy doesn't seem to have anything to do with the discovery of this backdoor, and he just summarizes Andres Freund's announcement.

2y agoHN ↗

The author of this is a gentoo maintainer who focuses on security work. Most distros have a couple of point people handling this issue for them at this point, and they are all likely pretty well informed.

If you want clarification on something, you can just ask instead of announcing that you've flagged it.

2y agoHN ↗

Its from the Gentoo maintainer of the package and libarchive project dev that submits changes, patches, is involved in the mail list and has ops on the groups IRC chan.

It's included in Lasse Collin's FAQ now that he has been found, but in his absence, Sam was speaking for the project on IRC chan and filed the gentoo bug also linked at the bottom of in Collin's FAQ:

https://tukaani.org/xz-backdoor/

You could have just asked and I could have elaborated.

2y agoHN ↗

So the attacker put the payload into the tests folder of the compression library and injected it upon build via some arcane build script? Kudos. That's quite a smart way to hide your backdoor.

Nevertheless, they got caught. So big respect for the analysis. Amazing work.

That being said, what does this attack tell you about the future of software security? Free software could easily be compromised by having a highly paid team create such a payload and then convince some maintainer, one way or another, to deploy it.

How do we back off from that cliff?

2y agoHN ↗

Security is hard.

In this case, it seems like there's a lot that could be done to reduce the chance of being exploited.

Why are obscure binaries in the repository at all in the first place, even if in the test dir? Surely those binaries can be generated as a setup step prior to the tests actually running.

Furthermore, why are there scripts present in the release package that have not been added to the source code?

Also, if I understood it correctly, the compromised binaries are also present in the release tarball. Why are they part of the release if they are supposedly test fixtures rather than part of the application code?

2y agoHN ↗

Why are they part of the release if they are supposedly test fixtures rather than part of the application code?

Test fixtures should be distributed together with the application code, so that the actually built application can be tested. Ideally, the application should be tested every time it's built, to ensure that for instance a change in the compiler being used didn't break it.

2y agoHN ↗

Thanks, that makes sense.

I think in my mind the whole chain was still

    source code->compile->test->distribute

from a single repo which is obviously not the case.

It’s more like

    source->package->test->ship to distros->compile->test->package->distribute
2y agoHN ↗

To be fair, so could closed source code.

The difference in this case is that a guy was running perf tests against postgres and noticed his ssh was slow, so he dove into that and found the backdoor a couple days after it was pushed.

If you had to submit 'my ssh daemon is slow' to a third party it would get put on the pile with the rest of them

2y agoHN ↗

Hmm, well they never find these kinds of attacks in closed source code. OTOH they never find these kinds of attacks in closed source code!

2y agoHN ↗

Closed source is a little tougher: Often you need to get a job somewhere in their organization or supply chain.

2y agoHN ↗

Or find a security vulnerability in their network, say a poorly secured FTP server as per SolarWinds.

2y agoHN ↗

And then you wouldn't have random people discovering it! It could even be covered up indefinitely.

2y agoHN ↗

The payload only activates if the running program has the process name /usr/bin/sshd. This means that systems that put sshd in /usr/sbin or another folder are not vulnerable. This further suspects targeting systemd systems due to their usrmerge initiative putting all binaries in /usr/bin.

This is highly likely wrong. The hack targets rpm and deb distros and as far as I know _all of them_ put sshd in /usr/sbin. The original oss-security report specifically said arg0 had to be /usr/sbin/sshd and I can reproduce his findings about increased runtime if you do so.

This /usr/bin vs /usr/sbin also has nothing do with usrmerge.

This type of mistake casts doubt in the rest of analysis.

2y agoHN ↗

There is no rational reason to justify throwing out the entire analysis over one mistake.

2y agoHN ↗

I said "Casts doubt". In the same way a typo in the headline, a logic error in the first bullet point, a misconception in the introduction, etc. casts doubt on the rest of a publication.

And this was no simple typo, as there was an accompanying and erroneous justification (which btw also hints to a lack of knowledge in the topic). This bullet was practically the easiest to verify out of the entire article and was already showing a contradiction. You might enjoy publications where fact-checking is not high in the list of priorities of the author (this article contains a disclaimer saying as much), but most "rational" readers should be interested in knowing how light the fact-checking indeed was, specially in a topic as important as this.

2y agoHN ↗

So wait, if I did a find / -n 'liblzma*' and saw 5.4, I'm good? This is only 5.6 and 5.6.1, right?

2y agoHN ↗

From what is publicly known at the moment, yes.

Note however that xzutils home page says that "versions 5.2.12, 5.4.3 and later have been signed with Jia Tan's OpenPGP key" so there would have been plenty more opportunities. We may just have seen the beginning. Whoever did this played the long game.

Also note that there was proposed patches by this compromised project maintainer to oss-fuzz and valgrind to avoid the detection of this backdoor.

2y agoHN ↗

The attacker had 750 previous commits; maybe it was all for this or maybe there are more vulnerabilities.

2y agoHN ↗

People are prematurely celebrating this did not reach a stable distribution. But we haven't seen the full fallout yet. How many debian-developer's machines have been compromised, for example?

2y agoHN ↗

I don't think that's the biggest concern.

There are 2 years of commits that potentially have backdoors.

2y agoHN ↗

so this backdoor is a package which installs a fake sshd? what is selinux for?