this post was submitted on 13 Mar 2025
278 points (96.3% liked)

Linux

6493 readers
753 users here now

A community for everything relating to the GNU/Linux operating system

Also check out:

Original icon base courtesy of lewing@isc.tamu.edu and The GIMP

founded 2 years ago
MODERATORS
 

curl https://some-url/ | sh

I see this all over the place nowadays, even in communities that, I would think, should be security conscious. How is that safe? What's stopping the downloaded script from wiping my home directory? If you use this, how can you feel comfortable?

I understand that we have the same problems with the installed application, even if it was downloaded and installed manually. But I feel the bar for making a mistake in a shell script is much lower than in whatever language the main application is written. Don't we have something better than "sh" for this? Something with less power to do harm?

you are viewing a single comment's thread
view the rest of the comments
[–] thomask@lemmy.sdf.org 10 points 2 days ago* (last edited 2 days ago) (2 children)

So tell me: if I download and run a bash script over https, or a .deb file over https and then install it, why is the former a "security nightmare" and the latter not?

[–] jagged_circle@feddit.nl 2 points 2 days ago (1 children)

Both are a security nightmare, if you're not verifying the signature.

You should verify the signature of all things you download before running it. Be it a bash script or a .deb file or a .AppImage or to-be-compiled sourcecode.

Best thing is to just use your Repo's package manager. Apt will not run anything that isn't properly signed by a package team members release PGP key.

[–] thomask@lemmy.sdf.org 1 points 2 days ago (1 children)

I have to assume that we're in this situation because because the app does not exist in our distro's repo (or homebrew or whatever else). So how do you go about this verification? You need a trusted public key, right? You wouldn't happen to be downloading that from the same website that you're worried might be sending you compromised scripts or binaries? You wouldn't happen to be downloading the key from a public keyserver and assuming it belongs to the person whose name is on it?

This is such a ridiculously high bar to avert a "security nightmare". Regular users will be better off ignoring such esoteric suggestions and just looking for lots of stars on GitHub.

[–] jagged_circle@feddit.nl 1 points 1 day ago (1 children)

No, you download the key from many distinct domains and verify it matches before TOFU

[–] thomask@lemmy.sdf.org 1 points 1 day ago (1 children)
[–] jagged_circle@feddit.nl 1 points 1 day ago

Fortunately package managers already do this for you. Open a bug report to add to apt. Easy.

[–] rocky_patriot@programming.dev 2 points 2 days ago (1 children)

For example: A compromised host could detect whether you are downloading the script or piping it.

[–] thomask@lemmy.sdf.org 1 points 2 days ago

I'm confident that if the host is compromised I'm screwed regardless.