frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

'No Way to Prevent This,' Says Only Package Manager Where This Regularly Happens

https://kevinpatel.xyz/posts/no-way-to-prevent-this/
157•alligatorplum•1h ago•45 comments

Erlang/OTP 29.0

https://www.erlang.org/news/188
115•pyinstallwoes•2h ago•6 comments

Project Gutenberg – keeps getting better

https://www.gutenberg.org/
731•JSeiko•10h ago•178 comments

I believe there are entire companies right now under AI psychosis

https://twitter.com/mitchellh/status/2055380239711457578
849•reasonableklout•6h ago•367 comments

The Zulip Foundation

https://blog.zulip.com/2026/05/15/announcing-zulip-foundation/
228•boramalper•7h ago•54 comments

Naturally Occurring Quasicrystals

https://johncarlosbaez.wordpress.com/2026/05/14/naturally-occurring-quasicrystals/
62•lukeplato•1d ago•5 comments

The Bird Eye Was Pushed to an Evolutionary Extreme

https://www.quantamagazine.org/how-the-bird-eye-was-pushed-to-an-evolutionary-extreme-20260513/
23•sohkamyung•1d ago•0 comments

Additive Blending on the Nintendo 64

https://phoboslab.org/log/2026/05/n64-additive-blending
26•ibobev•11h ago•2 comments

The main thing about P2P meth is that there's so much of it (2022)

https://dynomight.net/p2p-meth/
54•tomjakubowski•2h ago•33 comments

How to Write to SSDs [pdf]

https://www.vldb.org/pvldb/vol19/p1469-lee.pdf
54•matt_d•4h ago•6 comments

ESP-EEG is an affordable 8-channel biosensing board

https://www.autodidacts.io/cerelog-esp-eeg-affordable-openbci-like-board/
22•surprisetalk•2d ago•1 comments

A 0-click exploit chain for the Pixel 10

https://projectzero.google/2026/05/pixel-10-exploit.html
342•happyhardcore•12h ago•157 comments

Show HN: Epiq – Distributed Git based issue tracker TUI

https://ljtn.github.io/epiq/
18•jolaflow•2h ago•5 comments

California bill would require patches or refunds when online games shut down

https://arstechnica.com/gaming/2026/05/bill-to-keep-online-games-playable-clears-key-hurdle-in-ca...
344•Lihh27•6h ago•206 comments

I broke AppLovin's mediation cipher protocol

https://www.buchodi.com/i-broke-applovins-mediation-cipher-protocol/
13•lmbbuchodi•1h ago•1 comments

The sigmoids won't save you

https://www.astralcodexten.com/p/the-sigmoids-wont-save-you
155•Tomte•15h ago•168 comments

I designed a nibble-oriented CPU in Verilog to build a scientific calculator

https://github.com/gdevic/FPGA-Calculator
85•gdevic•9h ago•28 comments

Ploopy Bean: a trackpoint for every computer

https://ploopy.co/shop/bean-pointing-stick/
5•jibcage•3d ago•3 comments

U.S. DOJ demands Apple and Google unmask over 100k users of car-tinkering app

https://macdailynews.com/2026/05/15/u-s-doj-demands-apple-and-google-unmask-over-100000-users-of-...
375•tencentshill•9h ago•244 comments

Image-blaster: Creates 3D environments, SFX, and meshes from a single image

https://github.com/neilsonnn/image-blaster
134•MattRogish•10h ago•26 comments

Spectre Programming Language

https://spectre-docs.pages.dev
28•asdkop•3h ago•2 comments

Microscale Thermite Reaction

https://sciencedemonstrations.fas.harvard.edu/presentations/microscale-thermite-reaction
56•krunck•6h ago•21 comments

Show HN: Watch a neural net learn to play Snake

https://ppo.gradexp.xyz/
126•c1b•1d ago•31 comments

ASCII by Jason Scott

https://ascii.textfiles.com/
156•bookofjoe•12h ago•21 comments

Hightouch (YC S19) Is Hiring

https://hightouch.com/careers
1•joshwget•9h ago

ABC News has taken all FiveThirtyEight articles offline

https://twitter.com/baseballot/status/2055309076209492208
258•cmsparks•7h ago•122 comments

O(x)Caml in Space

https://gazagnaire.org/blog/2026-05-14-borealis.html
230•yminsky•15h ago•51 comments

Waymo updates 3,800 robotaxis after they 'drive into standing water'

https://www.cnbc.com/2026/05/12/waymo-recalls-3800-robotaxis-after-able-drive-into-standing-water...
163•drob518•8h ago•155 comments

The nuclear-physics infrastructure behind PET scans

https://www.lanl.gov/media/publications/1663/proton-power-for-public-health
43•LAsteNERD•2d ago•2 comments

Steve Jobs in Exile – New book on Steve Jobs’s years at NeXT Computer

https://spectrum.ieee.org/steve-jobs-next-computer
189•rbanffy•15h ago•152 comments
Open in hackernews

'No Way to Prevent This,' Says Only Package Manager Where This Regularly Happens

https://kevinpatel.xyz/posts/no-way-to-prevent-this/
155•alligatorplum•1h ago

Comments

btown•59m ago
For those unfamiliar with the context: https://en.wikipedia.org/wiki/%27No_Way_to_Prevent_This,%27_...
Modified3019•56m ago
Same vibe: https://www.youtube.com/watch?v=lOTyUfOHgas
yieldcrv•38m ago
the onion article is still up could link that
fragmede•29m ago
https://theonion.com/no-way-to-prevent-this-says-only-nation...
p-e-w•54m ago
With the recent high-profile attacks on PyPI packages, it’s no longer true that npm is the “only package manager where this regularly happens”.

In fact, pip is much more dangerous than npm because it lacks a lockfile. uv fixes that, but adoption is proceeding at a snail’s pace.

godzillabrennus•35m ago
UV adoption is happening, though. NPM is still the only name in town.
manquer•27m ago
Huh ? uv is a package manager not a registry.

In JS world there is plenty of competition for package managers pnpm/ yarn/ burn all viable alternatives to npm the package manager.

Public registries for languages tend to coalesce around one service . Nobody wants to publish their library to 4 different registries .

fragmede•27m ago
I don't know about snails, but everything I'm in contact with has moved over to uv, and I can't imagine I'm the only one.
esafak•20m ago
Apparently it does now: https://packaging.python.org/en/latest/specifications/pylock...

https://pip.pypa.io/en/stable/cli/pip_lock/

But who cares about pip, uv is here.

aselimov3•52m ago
What are the actual guarantees that go/Rust make that Python/npm don’t? It seems like it might just be that Python/npm are juicier targets? I’m starting to try and avoid all third party packages
cookiengineer•44m ago
I suppose that go's go:generate workflow can also be abused to land a worm like the ones spreading via npm, as you can build programs that just scrape the whole hard drive for git projects and patch the go.mod dependencies there, and you could also just write this in go as a toolchain script, for example.

NPM's achilles is the pre/postinstall step which can run arbitrary commands and shell scripts without the user having any way to intervene.

Dependencies must be run in isolated chroot sandboxes or better, inside containers. That would be the only way to mitigate this problem, as the filesystem of the operating system must be separated from the filesystem of the development workflow.

On top of that most host based firewalls are per-binary instead of per-cmdline. That leads to the warnings and rules relying on that e.g. "python" or "nodejs" getting network access allowlisted, instead of say "nodejs myworm.js". So firewalls in general are pretty useless against this type of malware.

yegle•28m ago
`go:generate` is for the package provider, the command never runs when someone `go install` or `go get` the package.
cookiengineer•19m ago
Note that the NPM worms are spreading because the package providers are developing on their libraries without them noticing a malicious dependency. It is not users/consumers spreading the worm, it is developers spreading it.

Your mismatch is that you think in policies, not assessments here. Nothing in my normal go workflow will ask me if I want to run "curl download whatever from the internet" when I run go build.

Though I agree with the difference in workflow, there is not a single mechanism in go catching this. go.mod files can be just patched by the worm, and/or hidden behind a /v123 folder or whatever to play shenanigans on API differences.

xena•27m ago
go:generate is done at dev time, not at build time.
cookiengineer•26m ago
Actually bindings are usually generated like that, at build time (though with a build cache that nobody knows how it corrupts all the time).

Examples that come to mind: webview/webview, webkit, cilium/ebpf and most other CGo projects that I have seen.

jollyllama•28m ago
> It seems like it might just be that Python/npm are juicier targets?

Attackers go where the victims are. Frontend is a monoculture with the vast majority using NPM; backend, less so. This isn't an excuse for NPM, but another strike against it.

You could also argue that the attacks make a deeper point about frontend vs backend devs, but I won't go there.

panzi•28m ago
Last I checked npm had 2FA for publishing, but cargo didn't. I don't think cargo is any better than npm, just not that of an attractive target.
lostglass•26m ago
To be honest Rust has the exact same supply chain attack pattern - it's just newer and more maintained at the moment. Give it a decade.
nothinkjustai•24m ago
Rust doesn’t have post install scripts
tasn•21m ago
It has build.rs, which has essentially the same problems.
deeebug•21m ago
They have build.rs (https://doc.rust-lang.org/cargo/reference/build-scripts.html)
fabrice_d•21m ago
It has build.rs that will run as soon as you compile the dependency. That's not the same thing but pretty close to a post install script: it's very likely to run.
est31•13m ago
There is build.rs, proc macros are unsandboxed, and lastly you install the binary so that you can run it. Even if the build and install were fully sandboxed, the binary could still do malicious stuff if ran.
jiggawatts•21m ago
Generally, other package managers aren't great either. Notably, crates.io / cargo has some of the same people behind it as NPM and the verbiage of their excuses is oddly similar.

Something fascinating about the design and architecture of programming languages and their surrounding ecosystems is the enormous leverage that they provide to the "core team":

For every 1 core language developer[1]...

... there may be 1,000 popular package developers...

... for which there may be 1,000,000 developers writing software...

... for over 1,000,000,000 users.

This means that for every corner that is cut at the top of that pyramid, the harms are massively magnified at the lower tiers. A security vulnerability in a "top one thousand" package like log4j can cause billions of dollars in economic damage, man-centuries of remediation effort, etc.

However, bizarrely, the funding at the top two levels is essentially a pittance! Most such projects are charities, begging for spare change with hat in hand on a street corner. Some of the most used libraries are often volunteer efforts! cough-OpenSSL-cough.

The result is that the people most empowered to fix the issues are the least funded to do so.

This is why NPM, Crates.io, etc... flatly refuse to do even the most basic security checks like adding namespaces and verifying the identity of major publishers like Google, Microsoft, and the like.

That's a non-zero amount of effort, and no matter how trivial to implement technically and now cheap to police, it would likely blow their tiny budget of unreliable donations.

The exceptions to this rule are package-managers with robust financial backing, such as NuGet, which gets reliable funding from Microsoft and supports their internal (for-profit!) workflows almost as much as it does external "free" users.

"Free and open" is wonderful and all, but you get what you pay for.

[1] Most of us can name them off the top of our heads: Guido van Rossum, Larry Wall, Kerningham & Richie, etc.

brunoborges•17m ago
It is 100% up to the package manager's steward to control how ownership of packages and namespaces are granted.

Maven Central exists for decades the amount of incidents of people stealing namespaces is minimal.

One can't simply publish a package under the groupId "com.ycombinator" without having some way to verify that they own the domain ycombinator.com. Then, once a package is published, it is 100% immutable, even if it has malicious code in it. Certainly, that library is flagged everywhere as vulnerable.

It baffles me that NPM for so long couldn't replicate the same guardrails as Maven Central.

raggi•13m ago
none. they just have smaller target populations.
nirvdrum•6m ago
Part of the point the article makes is that most other popular languages have a comprehensive standard library. JS has an astonishingly small on. Rather than have one vetted set of libraries that ship with the language, applications either need to roll it themselves or pull from a 3rd party package repository. We've drilled NIH into people, so they tend to reach for packages. That's not necessarily a bad thing, but it often means they're pulling in more code than they need. The JS ecosystem has also favored smaller modules, so you need many of them. And everyone builds on top of that, leading to massive growth in dependency graphs. It's a huge surface area for things to go wrong, intentionally or not.

With many other languages, you have a lot of functionality out of the box. Certainly, there have been bugs and security issues, but they're a drop in the bucket compared to what you see in the JS ecosystem. With other languages, you have a much smaller external dependency graph and the core functionality is coming from a trusted 3rd party.

apothegm•3m ago
Why Python, tho, in that case? Its stdlib is quite robust. Surprisingly so in some areas.
exabrial•50m ago
I really don't understand why the npm project cannot embrace PGP as an ambulatory 'good enough' solution.
loloquwowndueo•48m ago
The NIH mentality in the ecosystem would result in a JavaScript pgp library which itself would be an npm package and subject to supply chain attacks. lol.
panzi•31m ago
A good part of it is already implemented in web crypto, which is supported by browsers and node. There is a chance that npm could implement something there without extra dependencies. Maybe I'm too optimistic?
Gigachad•34m ago
Would that help? Most of these recent attacks, the attackers have gained access to the system that builds the packages. So it would have just signed the malicious build the same.
raggi•11m ago
nope, doesn't help. signatures and removal of script points have zero net effect on the value of the target that the ecosystem has, or how easy/hard it is to write a worm. the package code gets run, this is statistically true, and the exploited developers/environments will sign packages, this is also statistically true.
yegle•26m ago
Vendorizing using git submodule should be a robust mitigation for this problem.
raggi•10m ago
subtree is better for this case, you want to encourage actual reading before running. reading won't catch everything but it catches a lot, and the burden isn't as high as people always complain about before they try it.
827a•24m ago
There is no legitimate reason why postinstall scripts need to exist. The npm team needs to grow up and declare "starting with npm version whatever, npm will only run postinstall scripts for versions of packages published before ${today}".
Rohansi•16m ago
This doesn't really fix the issue though because package code is also executed at build time and during testing. Just maybe restricts the scope a little bit.
raggi•14m ago
install scripts are a distraction, just like package signatures are a distraction. adding/removing either feature has no significant impact on the wormability of this package ecosystem. installed npm code is run, with nearly zero exceptions.
nine_k•5m ago
...and only if you invoke it with --dangerously-run-postinstall-scripts; otherwise it will report an error if a postinstall script is found.

This is definitely going to affect any packages that need to link to native code and/or compile shims, but these are very few.

eulgro•8m ago
These satire articles on cybersecurity are really entertaining.

The other one a few days ago was also good: https://nesbitt.io/2026/02/03/incident-report-cve-2024-yikes...