this post was submitted on 18 Aug 2023
91 points (98.9% liked)

Rust

5979 readers
96 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS
 

So, serde seems to be downloading and running a binary on the system without informing the user and without any user consent. Does anyone have any background information on why this is, and how this is supposed to be a good idea?

dtolnay seems like a smart guy, so I assume there is a reason for this, but it doesn't feel ok at all.

you are viewing a single comment's thread
view the rest of the comments
[–] BatmanAoD@programming.dev 8 points 1 year ago (1 children)

If the executable were easily reproducible from the source code, then yes, downloading a precompiled binary would be akin to executing code in build.rs or a proc macro. The fact that it's not makes these very different, because it makes your suggestion of "vet[ting] their packages themselves" impossible.

[–] TehPers@beehaw.org 1 points 1 year ago (1 children)

Maybe I'm missing something, but I'm not seeing where in serde we're downloading a precompiled binary. I see a script we can execute ourselves in the repository and an alternative serde_derive that uses that executable (after we compile it), but not where the actual published package has the executable.

It's possible I'm missing something here though.

[–] BB_C@programming.dev 5 points 1 year ago* (last edited 1 year ago) (1 children)
bsdtar tfv ᐸ(curl -sL https://static.crates.io/crates/serde_derive/serde_derive-1.0.183.crate)

Edit: Ogh, using which is a replacement character because Lemmy escapes the real one. This is annoying.

There, you will see that this file exists:

-rwxr-xr-x  0 0      0      690320 Jul 24  2006 serde_derive-1.0.183/serde_derive-x86_64-unknown-linux-gnu

Yes, that's a pre-built binary in the crate source release. It's that bad.

[–] TehPers@beehaw.org 1 points 1 year ago

Looks like I missed that, I was checking locally but I must have been checking an outdated version of the package. I'd feel better about it if it compiled on the user's machine, which is the impression I was getting.