The Bitwarden security team identified and contained a malicious package that was briefly distributed through the npm delivery path for @bitwarden/cli@2026.4.0 between 5:57 PM and 7:30 PM (ET) on April 22, 2026, in connection with a broader Checkmarx supply chain incident. The investigation found no evidence that end user vault data was accessed or at risk, or that production data or production systems were compromised. Once the issue was detected, compromised access was revoked, the malicious ...
Unfortunately I have to use node for home project (Jellyfin tizen)
I was wondering: would it be possible to run node in a sandbox to lower the scope of the attack? (i.e. not compromise my home computer)
Or is maybe a full VM a better solution?
In case of NPM version pinning is a good practice. But also set it to ignore post install scripts. They are a bad practice and only about 2 % of all packages use it so it is unlikely it will bother you. They, the post install scripts, were used in recent supply chain attacks btw (the axios). You can either set it project wide in .npmrc file, add ignore-scripts=true, that is good for project where multiple people collaborate. And/Or system wide by running npm config set ignore-scripts true for your personal workspace. You can also achieve it by using --ignore-scripts flag during npm install, but that is way too impractical to always think about it.
Also I would recommend checking npq, its a wrapper around npm cli that will give you some security summary before installing anything (and it is able to give you warning about post install scripts).
Yes, that is exactly how the axios supply chain attack worked… It ran post install script (on dependency) that downloaded malware, ran it and even cleaned it up. Everything on that machine was compromised…
It can be any dependency of dependency too, deep down in the tree…
Hmm. I was going to say that it sounds bonkers what it can run just any script, but at the same time, is it any different from downloading and executhing a binary file?
Don’t. Use. Npm.
That applies to pip and crate and all the other shitty lang package managers that totally fail at security
Honestly just fine use computers at all, completely eliminate the remote attack vector. And only drink rain water since city water can be compromised.
Or, recognize this is a normal part of using software and have more than 1 thing between you and a breach
What about using pip just to download basic common libraries for offline use?
Don’t do it.
Because they could be changed or have something sneak in the library?
Yeah, without signature checking anything that you download could change to anything else.
That’s a remote code execution vuln.
what about cargo?
Same problem.
Unfortunately I have to use node for home project (Jellyfin tizen)
I was wondering: would it be possible to run node in a sandbox to lower the scope of the attack? (i.e. not compromise my home computer) Or is maybe a full VM a better solution?
Wouldn’t verion pinning solve this problem?
In case of NPM version pinning is a good practice. But also set it to ignore post install scripts. They are a bad practice and only about 2 % of all packages use it so it is unlikely it will bother you. They, the post install scripts, were used in recent supply chain attacks btw (the axios). You can either set it project wide in .npmrc file, add
ignore-scripts=true, that is good for project where multiple people collaborate. And/Or system wide by runningnpm config set ignore-scripts truefor your personal workspace. You can also achieve it by using --ignore-scripts flag during npm install, but that is way too impractical to always think about it. Also I would recommend checking npq, its a wrapper around npm cli that will give you some security summary before installing anything (and it is able to give you warning about post install scripts).Wait, any package that I download via NPM could potentially have a script that will run unless I set it to false, when I install said package?
Yes, that is exactly how the axios supply chain attack worked… It ran post install script (on dependency) that downloaded malware, ran it and even cleaned it up. Everything on that machine was compromised… It can be any dependency of dependency too, deep down in the tree…
Hmm. I was going to say that it sounds bonkers what it can run just any script, but at the same time, is it any different from downloading and executhing a binary file?
What should be used instead?
A package manager that uses cryptographic signatures. Apt had this since 2005 iirc. Use apt.
Apt is great, but it does not work with every language. As an example, you cannot use apt with maven (java) AFAIK.
Oh boy. Maven is like the only language dependency manager that does signing tho!
You don’t need to use apt for java. Just use maven :)
Haha! Yeah, I don’t even know where to start if I wanted to use apt for this. I’ll stick with Maven for Java.