20 comments

  • ramimac 24 minutes ago
  • praseodym 25 minutes ago
  • vatsachak 14 minutes ago

    All those folks telling me to update my dependencies, this is why I don't do it. It's not laziness, it's undeniable foresight.

  • tsimionescu 18 minutes ago

    > arrayref is a small crate of four macros.

    Why do so many languages fall intp this horrible practice?

      bcjdjsndon 13 minutes ago

      Just like c++ thought threads wasn't a std library concern and then later changed they minds, rust will also change tac I predict

        nicoburns 5 minutes ago

        Rust is actively incorporating more functionality into the stdlib. The functionality of this crate has been in std since 2024. The ecosystem is just slow to update (not everything is maintained, etc).

      rvz 10 minutes ago

      The languages that have a poor standard library support have this issue and other languages encourage you to import tons of libraries to fix the problem.

      This is why Javascript and Typescript suffer from this the most and has little to nothing to do with "popularity" and likely 9/10 of these npm packages import an external library.

      Go on the other-hand is just as popular and has a stronger standard library which people build against and it is encouraged to use its standard library rather than rolling your own or importing another package to solve the problem.

  • christophilus 20 minutes ago

    Rust seems barely better than Node in this regard. Go or .Net or anything with a robust standard library seems like the way to go for most projects.

  • demibabs 18 minutes ago

    What does the malicious code actually do?

  • aftbit 32 minutes ago

    Why do none of these hijacks embed runtime attacks? It seems like worming the build machines is the goal, rather than compromising downstream users.

    It seems like we should be building and testing everything in bubblewrap or some other sandbox going forward.

      Retr0id 29 minutes ago

      It usually takes some time for an updated dependency to actually get shipped to users in a release, by which time there's a good chance the attack has been noticed.

      crote 8 minutes ago

      > Why do none of these hijacks embed runtime attacks? It seems like worming the build machines is the goal, rather than compromising downstream users.

      Developer machines are quite juicy targets. They tend to have all sorts of credentials lying around, so it often isn't too difficult to escalate from that to compromising AWS/GCP/etc.

      On top of that there's very little preventing a compromise. Developers are inherently expected to run untrusted code, and the usual Linux / MacOS laptop probably isn't even running any kind of anti-virus protection. Want to compromise the downstream app? Now you also need to pass Play Protect & friends.

      > It seems like we should be building and testing everything in bubblewrap or some other sandbox going forward.

      Yes, we really should. It is frankly a miracle that it has taken so long for fetch-time / install-time code execution to start blowing up in our faces. If we are spending so much effort on run-time isolation, why are we completely ignoring all those practices during development?

  • Panzerschrek 30 minutes ago

    Why this still happens? Why after many previous supply-chain attacks maintainers of package repositories still allow anyone uploading packages and pushing updates without security audit?

      surajrmal 20 minutes ago

      Who is funding this security audit? Are folks supposed to volunteer their free time? It's a difficult coordination problem. The best folks have come up is to delay adopting new releases by a few days and hope your dependency is popular enough that a security firm audits it for you in that timespan. If you have enough money I suppose you can start employing llms to audit things for yourself.

        renox 4 minutes ago

        > It's a difficult coordination problem.

        Well, it depends on the language: language which "capabilities" (both for the source code and for the building* ) could in theory really reduce a lot of the burden to identify supply chain attacks.

        *: some research language have/had capabilities which would make supply chain attack "obvious" but for build systems I don't know if this exist.

        bcjdjsndon 15 minutes ago

        > Who is funding this security audit? Are folks supposed to volunteer their free time?

        Same people who keep the whole rust project going, a lot of those are volunteers aren't they? Not mad to think they could do the same for core packages at least

          aw1621107 3 minutes ago

          > Same people who keep the whole rust project going, a lot of those are volunteers aren't they?

          Sure, but from my understanding the Rust project is generally "bottom-up" in that volunteers generally work on what they want to rather than submit their time into a pool for some kind of higher-level management to direct.

  • vlovich123 14 minutes ago

    I’m disappointed crates.io doesn’t have a stricter bar for serving a crate that has newly acquired a proc macro or build.rs. That seems like a trivial mitigation.

      weinzierl 8 minutes ago

      Mitigation for what?

      Compromising the code that is then most likely run in a test instead of compromising a build script is just a very slight inconvenience for the attacker.

      I'm not particularly fond of arbitrary build scripts either, but restricting them will not help the supply chain issue in a significant way.

      Also there are several ways to control build.rs execution in the Cargo ecosystem, for example with cargo-deny.

      praseodym 7 minutes ago

      As mentioned by others it’s just as easy for an attacker to modify a crate’s runtime code.