this post was submitted on 23 Apr 2026
606 points (99.7% liked)

Selfhosted

58738 readers
1244 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

  7. No low-effort posts. This is subjective and will largely be determined by the community member reports.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] LurkingLuddite@piefed.social 40 points 1 day ago (4 children)

Genuine question. How is NPM more vulnerable than other repos? Haven't similar supply chain attacks succeeded at least as well as this one through GitHub itself and even Linux package repos?

[–] Serinus@lemmy.world 42 points 1 day ago (2 children)

Larger standard libraries do a lot. It's a lot harder to sneak vulnerabilities into the basic C# or Java or C++ libraries than it is to add a vulnerability to something one dude maintains in the javascript ecosystem.

And since javascript libraries tend to be so small and focused, it's become standard practice for even other libraries to pull in as many of those as they want.

And it stacks. Your libraries pull in other libraries which can pull in their own libraries. I had a project recently where I had maybe a dozen direct dependencies and they ended up pulling in 1,311 total libraries, largely all maintained by different people.

In a more sane ecosystem like C#, all the basics like string manipulation, email, or logging have libraries provided by Microsoft that have oversight when they're changed. There can be better, third-party libraries for these things (log4net is pretty great), but they have to compete with their reputation and value over the standard library, which tends to be a high bar. And libraries made on top of that system are generally pulling all those same, certified standard libraries. So you pull in 3 libraries and only one of those pulls in another third party single library. And you end up with 4 total third party libraries.

Javascript just doesn't really have a certified standard library.

(This certified standard library doesn't have to be proprietary. Microsoft has made C# open source, and Linus Torvalds with the Linux Kernel Organization holds ultimate responsibility for the Linux kernel.)

[–] vithigar@lemmy.ca 12 points 1 day ago (1 children)

I will almost always choose .NET as my development platform when greenfielding a project for exactly this reason. It's an incredibly robust standard library that virtually guarantees I won't need to pull in a litany of additional utility libraries, and I can also expect that what libraries I do choose to bring in are highly unlikely to drag along a ridiculous parade of dependencies.

[–] InternetCitizen2@lemmy.world 2 points 1 day ago (1 children)

will almost always choose .NET as my development

Do you feel its still worth learning now?

[–] boonhet@sopuli.xyz 3 points 1 day ago

Probably more worth than it was 15 years ago since you're no longer restricted to Windows and it's now open source. I've heard a lot of people say it's nicer than Spring for enterprise stuff. Haven't tried it much myself though. Was fairly easy to set up a simple API, but I then got distracted by other projects.

[–] aesthelete@lemmy.world 2 points 1 day ago (1 children)

And since javascript libraries tend to be so small and focused

Lol, LMAO even

[–] boonhet@sopuli.xyz 2 points 1 day ago

Part of the problem is also how many packages people bring in, even for the simplest of things.

[–] hersh@literature.cafe 12 points 1 day ago (1 children)

I don't think you'll find another major repo with so many real-world incidents though. Whether this is because of a systemic problem or just because it's targeted more frequently, I'm not sure.

[–] tempest@lemmy.ca 0 points 1 day ago (1 children)

As much as some people deride it Javascript is one of the most used languages on the planet.

This is basically the same as people thinking windows is less secure because it's more often targeted.

JavaScript does have a bit of a problem with dependencies but it isn't much different than other languages with built in package managers like rust. It's just a bigger juicer target.

[–] aesthelete@lemmy.world 14 points 1 day ago* (last edited 1 day ago)

But Windows is less secure. Two things can be true at once. They are in the original topic too.

The Java ecosystem is massive and decades old and I don't hear one iota of the shit about maven central that I hear about npm.

I guarantee that npm is full up with vibe coded bullshit at this point as well.

I'm not sure what it even takes to upload a package to npm. Not even a pulse. I honestly never looked into it because the whole ecosystem is so rancid.

EDIT: Look at how many shits in this are optional (and note the overall quality of the article as well): https://dev.to/aneshodza/publishing-your-first-npm-library-51k2. The ecosystem sucks.

[–] LodeMike@lemmy.today 3 points 1 day ago (1 children)

There's a lot of features that make it a better package manager but nobody cares. Every project has hundreds of dependencies and packages use a minimum, not exact, version.

[–] LurkingLuddite@piefed.social 2 points 1 day ago (2 children)

That sounds more like bad practices from the community. It definitely has ways to use exact versions. Not the least of which the lock file. Or the shrinkwrap file which public packages should be using.

[–] dustyData@lemmy.world 7 points 1 day ago (1 children)

Any security system based on expecting good behavior from people is sure to fail. If NPM has no estructural features to enforce safe behaviors, it is vulnerable by default. As no person using it will apply safe practices unless forced to. Specially if the default, easiest, less friction behavior, is inherently unsafe.

[–] LurkingLuddite@piefed.social 1 points 1 day ago

I wouldn't say pulling in higher versions is unsafe unless an attack like this succeeds. Otherwise it's only an annoyance.

[–] Serinus@lemmy.world 2 points 1 day ago

Then you're waiting forever on vulnerability patches. Especially if there are layers, and each layer waits to update.