News for hackers. Stuff that matters.
Re:NPM packages from Red Hat have been compromised by dmix on Monday June 01, 2026 @09:42AM (#48356771)
Our company uses yarn 4 which has an option to prevent you from installing an npm package for the first number of days of its release. Most of these seem to be caught within that timeframe (1-3 days).

https://gist.github.com/mcollina/b294a6c39ee700d24073c0e5a4e...

Re:NPM packages from Red Hat have been compromised by 0xbadcafebee on Monday June 01, 2026 @11:27AM (#48358135)
The package event-stream was compromised and went unnoticed for 60 days: https://medium.com/intrinsic-blog/compromised-npm-package-ev...

The package axios was compromised, and hijacked the author's credentials, so every attempt at a fix was unfixed. https://www.trendmicro.com/en_us/research/26/c/axios-npm-pac...

The xz utility was backdoored for 2 months: https://gigazine.net/gsc_news/en/20240403-timeline-of-xz-ope...

A student researcher took over Python ctx and PHPass package maintainership, pushing out malicious changes, and that took over 7 days to be detected and fixed: https://infosecwriteups.com/how-i-hacked-ctx-and-phpass-modu...

Kaspersky found multiple PyPI packages that had been exploited for more than a year: https://www.kaspersky.com/about/press-releases/kaspersky-unc...

"LoftyLife" packages were exploited for several months: https://securelist.com/lofylife-malicious-npm-packages/10701...

Now that the attack window has changed to 7 days, all new exploits like these will come with time bombs to not trigger until 8 days.

Re:NPM packages from Red Hat have been compromised by Sayrus on Monday June 01, 2026 @11:47AM (#48358464)
> Now that the attack window has changed to 7 days, all new exploits like these will come with time bombs to not trigger until 8 days.

Many automated scanners use static code analysis rather than run the installation script. Not all of them are caught, but a good part of them are and you'd be saved by a delay.

Re:NPM packages from Red Hat have been compromised by pixl97 on Monday June 01, 2026 @12:23PM (#48358972)
Instant attacks are much easier and more common than delayed attacks. Security is an onion.
Re:NPM packages from Red Hat have been compromised by throwawayffffas on Monday June 01, 2026 @03:07PM (#48361204)
Ok so no external dependencies, or pull versions from 2021 and apply security patches?
Re:NPM packages from Red Hat have been compromised by 0xbadcafebee on Monday June 01, 2026 @03:17PM (#48361333)
- Best practice for both reliability and security is to not immediately upgrade to latest versions. Only immediately upgrade to security-patched versions. If your software doesn't need a new version, you can remain on the old version.

- When a feature you're developing, or a transitive dependency, requires an upgraded version, you can upgrade to the latest stable version that satisfies the dependency. But as each of those then requires an additional transitive dependency to be upgraded, you have more and more components upgraded to "latest", and the attack surface widens. So there are two alternatives:

1) (preferred) Upgrade to the latest version of the next-to-latest minor version, within the oldest major version that is supported, if that is available. This is the least number of changes that provides the needed functionality.

2) Upgrade only to the oldest version that gives you the functionality you need. If this ends up being the first version of a new major or minor version, this can cause bugs (initial releases of new major/minor always has bugs), so in that case you might as well use the latest version of that major/minor version.

This all affects security by avoiding upgrading to the latest version. It affects reliability by minimizing the amount of changes between your current version and upgraded version (changes lead to bugs).

The argument against all that, and for always upgrading to the latest versions, is intended to make software development easier. You avoid all the complexity of picking versions or reading changelogs by using software that is probably (but not always) all compatible. But it makes reliability and security worse. So you need to choose: do you want security and reliability, or an easier time writing code?

Re:NPM packages from Red Hat have been compromised by skydhash on Monday June 01, 2026 @05:10PM (#48362681)
it would be way easier if dependencies were a flat list and not a graph, aka peer in npm parlance. I believe that’s what go does. A library only need to say that it depends 1.x.x or 1.2.x and it’s up to the application to provide it. Conflict is handled manually.

The onus is on libraries developers to cleanup their act. Start vendoring code instead of depending on hundreds tiny libraries.

Re:NPM packages from Red Hat have been compromised by mihaelm on Monday June 01, 2026 @10:46AM (#48357541)
`pnpm` also has that and it's on by default since `v11`:

https://pnpm.io/settings#minimumreleaseage

Re:NPM packages from Red Hat have been compromised by vinnymac on Monday June 01, 2026 @10:52AM (#48357598)
It’s on by default in yarn 4 too now, but pnpm was the first to market that default minimum gate.

https://github.com/yarnpkg/berry/pull/7135

Re:NPM packages from Red Hat have been compromised by user3939382 on Monday June 01, 2026 @11:51AM (#48358516)
If this were a universal default, would the strategy defeat itself?
Re:NPM packages from Red Hat have been compromised by Normal_gaussian on Monday June 01, 2026 @12:10PM (#48358784)
No.

Many places run analyzers on published code; many security users have reason to shorten the period. The default period becomes the period where white hats have a chance to detect it and stop it passing the threshold.

Re:NPM packages from Red Hat have been compromised by zwily on Monday June 01, 2026 @01:00PM (#48359494)
Even if everyone used it, the security scanners would still have time to do their static analysis of new packages. Basically, all the clients implementing a delay would create a de facto quarantine status for new packages so they can be examined before everyone starts installing them. (Why npm doesn't just implement that themselves, I do not know.)
Re:NPM packages from Red Hat have been compromised by user3939382 on Monday June 01, 2026 @10:41PM (#48365325)
Then shouldn’t the analyzers just be part of NPMs acceptance requirements?
Re:NPM packages from Red Hat have been compromised by zwily on Tuesday June 02, 2026 @01:27AM (#48366412)
That’s my point. For whatever reason, npm isn’t doing it. All npm users adding a minimum package age is kind of like doing it as a collective, without npm’s help.
Re:NPM packages from Red Hat have been compromised by _flux on Tuesday June 02, 2026 @07:35AM (#48368868)
I think if they did it, then attackers would be able to iterate their attack against their own project, and once it passes the filters they could deploy for real.

I guess it could work better if it was enabled for only actual attack vectors projects.

Re:NPM packages from Red Hat have been compromised by wg0 on Monday June 01, 2026 @11:36AM (#48358272)
If everybody starts to delay for 3 days, wouldn't it be the case that everyone would discover it on the 3rd day?
Re:NPM packages from Red Hat have been compromised by cortesoft on Monday June 01, 2026 @11:37AM (#48358289)
Vulnerability scanners and security researchers would be looking those first 3 days
Re:NPM packages from Red Hat have been compromised by pixl97 on Monday June 01, 2026 @12:25PM (#48358998)
Most attacks are discovered 'pretty quickly' via scanning services and groups that monitor repositories. The problem is even an hour gap could mean tens of thousands of downloads and executions.
Re:NPM packages from Red Hat have been compromised by iwhalen on Monday June 01, 2026 @09:45AM (#48356805)
uv supports the same for any Python developers out there: https://docs.astral.sh/uv/concepts/resolution/#dependency-co...
Re:NPM packages from Red Hat have been compromised by no-name-here on Monday June 01, 2026 @11:05AM (#48357819)
Sadly I haven't seen that Visual Studio/Rider/dotnet/Vs Code have such a feature for the c#/dotnet ecosystem.
Re:NPM packages from Red Hat have been compromised by orphea on Monday June 01, 2026 @11:35AM (#48358260)
Yep, a bummer. The devs don't even consider it a priority, too busy designing the feature:

https://github.com/NuGet/Home/issues/14657#issuecomment-3573...

Re:NPM packages from Red Hat have been compromised by KORraN on Monday June 01, 2026 @10:07AM (#48357050)
pip has recently added a similar option, i.e.

`pip install --uploaded-prior-to P7D pre-commit`

https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-upl...

Re:NPM packages from Red Hat have been compromised by darth_avocado on Monday June 01, 2026 @09:50AM (#48356846)
And somehow poetry doesn’t in 2026.
Re:NPM packages from Red Hat have been compromised by armanckeser on Monday June 01, 2026 @10:31AM (#48357363)
I don't use poetry anymore but do check the updates before claiming such things

https://python-poetry.org/blog/announcing-poetry-2.4.0/

Re:NPM packages from Red Hat have been compromised by genxy on Monday June 01, 2026 @11:04AM (#48357795)
May 3rd 2026. Release too new, didn't read.
Re:NPM packages from Red Hat have been compromised by darth_avocado on Monday June 01, 2026 @01:22PM (#48359847)
Fair, I didn’t do a “as of this morning check”. Should’ve done better. It’s sad because I moved away exactly because this feature was missing and now I’m not going back.
Re:NPM packages from Red Hat have been compromised by dist-epoch on Monday June 01, 2026 @10:26AM (#48357288)
so? nobody uses it anymore
Re:NPM packages from Red Hat have been compromised by darth_avocado on Monday June 01, 2026 @09:52AM (#48356881)
There is something to be said about the need to keep all the packages as the latest and the greatest at all times. Every minor version update doesn’t need to be immediately applied. And maybe high and critical vulnerabilities don’t need to be a minor version upgrade.
Re:NPM packages from Red Hat have been compromised by Waterluvian on Monday June 01, 2026 @10:03AM (#48357003)
I’m having a real problem at work with security theatre and the growing push to obsess over numbers of “vulnerabilities” in our projects. And then auto Dependabot PRs that encourage churn to fix issues that if an informed person actually reviews easily concludes it doesn’t affect us in the slightest.
Re:NPM packages from Red Hat have been compromised by chrisweekly on Monday June 01, 2026 @10:13AM (#48357112)
"maybe high and critical vulnerabilities don’t need to be a minor version upgrade"

huh? what do you suggest instead?

Re:NPM packages from Red Hat have been compromised by darth_avocado on Monday June 01, 2026 @10:35AM (#48357401)
A separate pathway to updates. At the moment there is a pressure to keep all the packages updated at all times. Every time a new version of a random package deep in the dependency tree gets published, you roll a dice: is it a bunch of bug fixes that I don’t care about or a vulnerability patch that need to apply immediately? Since it could be either most devs just auto pilot on updates. This creates an environment where newly introduced vulnerabilities get promoted rather quickly before the version matures. Sure, waiting a few days to update a package sounds great, but there is no guarantee that the vulnerability will be found quickly.

To give you a context, I get 20-30 PRs a week across all my repos with potentially hundreds of packages (non distinct) from dependabot. I give it a cursory look and try to get a summary of changes. Do I evaluate every single package update? Nope.

Re:NPM packages from Red Hat have been compromised by chrisweekly on Monday June 01, 2026 @10:26PM (#48365223)
Huh? Sorry but both of your comments are frankly incoherent. I have deep experience maintaining large dependency graphs and empatjize with the frustration about CVEs in deep transitive deps, but I can't make head or tail of your "separate pathway".
Re:NPM packages from Red Hat have been compromised by kylebebak on Monday June 01, 2026 @11:12AM (#48357915)
npm supports this now as well, with e.g. `min-release-age=7` in `.npmrc`
Re:NPM packages from Red Hat have been compromised by winrid on Monday June 01, 2026 @11:53AM (#48358542)
not if you have internal repos?
Re:NPM packages from Red Hat have been compromised by hedora on Monday June 01, 2026 @12:37PM (#48359169)
I think you can set it on internal repos, but then you need to allow-list internal code. People act like this is simple + solved, but it's not. It turns into 100K-1M's of LLM tokens on a semi-regular basis, or "just hire a build infra team for your side project" pretty quickly.
Re:NPM packages from Red Hat have been compromised by winrid on Wednesday June 03, 2026 @03:09AM (#48380888)
did you write this with an LLM? also, no, there are no docs for allow listing internal libraries or namespaces in NPM that I can find
Re:NPM packages from Red Hat have been compromised by bram98 on Monday June 01, 2026 @04:10PM (#48361959)
Why not the other way around, I man by default and can be changed.
Re:NPM packages from Red Hat have been compromised by phoronixrly on Monday June 01, 2026 @09:43AM (#48356794)
What happens when everyone adopts this policy? You just change it to two weeks?
Re:NPM packages from Red Hat have been compromised by blm126 on Monday June 01, 2026 @09:53AM (#48356889)
The one week cooldown option is not relying on other users to be a canary for you. Its just giving automated scanners a chance to notice. This is the perfect example. I don't think step security found this by accident. They are actively monitoring NPM package releases at some level.

There is something to be said that Microsoft should be scanning packages pre-release. They aren't, though, so for right now there is a ton of value with very little downside if people implement a one week cooldown period.

To answer your question directly, though. If everyone else moves to a one week cooldown, I would absolutely suggest a two week cooldown is a good idea. Being the "slow" moving organization is a good security trade-off so long as you don't take it to extremes and have escape hatches when you actually need to be moving quickly.

Re:NPM packages from Red Hat have been compromised by phoronixrly on Monday June 01, 2026 @10:00AM (#48356978)
Thank you for the thorough response. I got the following from yours and other responses:

* The JS ecosystem has been and will most likely continue to be fast-moving, so it's quite a safe assumption that at no point will a quarantine period be wide-spread.

* This quarantine period is for (semi-)automated scanners to catch the issue. Although considering the above there will always be a non-zero amount of end-user canaries as well.

* Maybe NPM should run scanners before distributing malware?

* If the ecosystem by any chance adopts a week-long quarantine period, you'd be safer if you applied a longer quarantine period.

Re:NPM packages from Red Hat have been compromised by _flux on Monday June 01, 2026 @11:10AM (#48357893)
> Maybe NPM should run scanners before distributing malware?

I suspect there's always a human checking these results. If NPM straight out rejects an update due to suspected malware, they might end up rejecting correct updates as well. If they grant some "safe" patterns a special pass, they might get exploited.

So I think this only works if you have security scanners that are well-maintained and kept in secret. NPM folks could of course co-operate with some security companies to have a first stab with the releases before they are put to public access. At some point some parties might start want to have monetary compensation for such an arragnement, though.

Re:NPM packages from Red Hat have been compromised by phoronixrly on Monday June 01, 2026 @11:37AM (#48358294)
Look, nobody requested fully automated scanners that are never wrong. A scanner that asks the project owner to sign in with 2fa and confirm the release in case it's been flagged is going to be more than sufficient.
Re:NPM packages from Red Hat have been compromised by hedora on Monday June 01, 2026 @12:40PM (#48359220)
There's a really bad implicit assumption in there: Microsoft's scanners have solved the halting problem, so they can tell if a package update will ever flip to malicious mode, or has an intentionally inserted security hole in it.

Of course, this also assumes that Microsoft's internal scanners are much better than the scanners available to the attackers, since any reasonable attacker is going to just run their obfuscated code through a scanner as part of their CI job. (And maybe even use the MS scanner as an oracle by submitting fragments to NPM to see which pieces of their exploit chain get flagged.)

Waiting until everyone else canaries is much stronger, but even that doesn't work on a targeted attack.

Re:NPM packages from Red Hat have been compromised by JoshTriplett on Monday June 01, 2026 @09:49AM (#48356839)
A large array of automated and semi-automated security scanners are finding things quickly. The main benefit of waiting before updating is to give those scanners time to work.
Re:NPM packages from Red Hat have been compromised by genxy on Monday June 01, 2026 @11:05AM (#48357820)
Would be nice if cargo had a cooldown flag and could respect lockfiles by default.
Re:NPM packages from Red Hat have been compromised by dbdr on Monday June 01, 2026 @12:35PM (#48359142)
Re:NPM packages from Red Hat have been compromised by Ukv on Monday June 01, 2026 @10:01AM (#48356983)
Security scans and authors realizing an unauthorized version was pushed will generally happen regardless of whether regular users updated. Even for compromises that are found by users updating, it'd generally be better to reduce the number of people affected with a slow roll-out rather than everyone jumping on at once.
Re:NPM packages from Red Hat have been compromised by Tomte on Monday June 01, 2026 @09:46AM (#48356819)
You rely on the security companies scanning the packages.
Re:NPM packages from Red Hat have been compromised by exitb on Monday June 01, 2026 @09:49AM (#48356841)
Well, if that actually works, it should be part of the release process, before the packages get placed onto the regular channels.
Re:NPM packages from Red Hat have been compromised by blm126 on Monday June 01, 2026 @09:59AM (#48356971)
I think the key right now is that these are semi-automated scanning processes. Right now, companies like step security selectively publish. So, in order for a hacking group to find out if their malware is detected or not, they have to burn access to a useful package.

None of this is to say I think Microsoft shouldn't be doing something as part of the release process on NPM. However, there is real value in giving more independent third parties a window to do things semi-manually.

Re:NPM packages from Red Hat have been compromised by pixl97 on Monday June 01, 2026 @12:31PM (#48359097)
It works because there are multiple companies doing it and double checking the results.

For example, is a crypto miner actually an attack? If the package presents itself as a miner, then no. Is connections to other repositories an attack? Again, depends on what the package does. Connections to some other hostname? Depends.

There is still a lot of human analysis that occurs in making the call that an attack is occurring.

Re:NPM packages from Red Hat have been compromised by saghm on Monday June 01, 2026 @04:11PM (#48361970)
Yeah, this is the part that I don't get. If the solution is "security testing should come before people install it", why is the big push to have people intentionally add this artificial delay to install later rather than moving the security testing earlier to before the release? If you want to make people not drive on the road until the pavement dries, you don't try to convince everyone to push back their workday by an hour; you just lay the asphalt an hour earlier.
Re:NPM packages from Red Hat have been compromised by ZiiS on Monday June 01, 2026 @09:59AM (#48356963)
@exitb it is much more desirable for security scanning companies to compete to find issues in a timely manor. If npm blessed one as a gatekeeper to the whole system they would be between a rock and a hard place. Unable to priorities high impact packages over the long tail of packages no one uses without pissing people off. Unable to add experimental new detections that may be a little noisy at first due to the huge disruption it would cause. Be trivial to game as obscure packages could brute-force their way though then use the same hole on a mainstream package.
Re:NPM packages from Red Hat have been compromised by sandos on Monday June 01, 2026 @09:55AM (#48356931)
Then the ... malware will just add delays? Or do they really do manual in-depth analysis of all new code? Just running and seeing it do things is probably a lot easier.
Re:NPM packages from Red Hat have been compromised by Ukv on Monday June 01, 2026 @11:19AM (#48358010)
Security scanners won't be "manual in-depth analysis of all new code" or "Just running and seeing it do things", but somewhere in-between - utilizing static analysis/machine learning. It's a cat-and-mouse game, but the attacker adding code that waits X days to run something obfuscated would be another pattern that they could look for.

I think these attackers are unlikely to add a delay in the first place because the chance of their attack being found out before it activates would be too high. They seem to generally work on the assumption that they have a day or so before the package is yanked (e.g: from maintainer noticing their account is compromised) so need to move fast.

Re:NPM packages from Red Hat have been compromised by BoredPositron on Monday June 01, 2026 @09:48AM (#48356830)
Always one day more than people on HN tell you. If something is compromised you will hear people complaining here that three days is not enough.
Re:NPM packages from Red Hat have been compromised by bakugo on Monday June 01, 2026 @10:00AM (#48356980)
This will never happen unless it's made the default. Most people will always stick with the defaults.
Re:NPM packages from Red Hat have been compromised by olejorgenb on Monday June 01, 2026 @10:51AM (#48357581)
pnpm also support this
Re:NPM packages from Red Hat have been compromised by dmix on Monday June 01, 2026 @10:53AM (#48357610)
The gist link above covers how to use it in yarn, npm, and pnpm