Dependency Firewallfor npm
Your rules check every npm, Yarn, pnpm and Bun install and block risky versions before they reach node_modules.
- Built in Sweden and hosted in the EU
- Supply chain security since 2018
Supported npm upstreams
Any npm-compatible registry can be an upstream.
Rules that run before npm install
Hold new npm versions until they have cooled off
"vite": "^7.1.0"- vite 7.1.92 days oldHeld
- vite 7.1.812 days oldInstalled
Block packages reported as malware
- @ctrl/tinycolor 4.1.2Blocked
- express 4.21.2Served
- ua-parser-js 0.7.29Blocked
Resolve internal scopes from your own registry
npm install @acme/billing- Artifactory, internal2.4.1Installed
- registry.npmjs.org99.0.0Not asked
Block versions with known CVEs
- lodash 4.17.20CVE-2021-23337 · CVSS 7.2Blocked
- lodash 4.17.21Served
Connect one project or the whole company
Package manager config
Set the registry per project
Commit .npmrc to the project and every install goes through the firewall, on laptops and in CI.
registry=https:/ /<firewall-host>/ v1/<namespace-id>/ npm/<firewall-id>// /<firewall-host>/ v1/<namespace-id>/ npm/<firewall-id>/ :_authToken=${BYTESAFE_TOKEN}Best for: trying it on one project, CI pipelines, teams that own their config.
Web proxy chaining
Route the company through your web proxy
Your web proxy hands npm traffic to the firewall. Nothing changes on developer machines.
- Laptop, CI or agentPackage managerregistry.
npmjs. org - Web proxyZscaler, Prisma Access, Squid
- Your rulesDependency Firewall
Best for: every laptop and agent at once, including machines nobody has configured.
Web proxy chainingWhat your team sees after a block
1 of 3 · Logs
Live firewall logs
Every request is logged: package name, version, status, ecosystem, which firewall evaluated it, which rule triggered and who requested it. Filter by firewall or user, and tail live during incidents or CI/CD runs.
Developers get a fast answer when an install fails, and AppSec gets an audit trail for every decision.
Why a package was blocked
Open a blocked request to see the package, how old the release is, the rule that stopped it and when it will be allowed.
Add or request a time-limited exception from the same drawer to let one package or version through while the rule keeps applying to everything else. The decision stays attached to the original request, so nothing has to be reconstructed from CI output later.
Every package that passed through
See which packages each firewall served over a period, with ecosystem, version, first-seen and last-seen time, vulnerability signals and request counts.
When a new advisory or malware report appears, search for the package and see where it was observed and when exposure started.
npm incidents and the rule that covers each
shai-hulud
A self-spreading worm stole npm tokens from developers who installed an infected version, then used them to publish infected versions of those developers' own packages. Hundreds of packages were hit, and a second wave followed in November 2025.
Release delayua-parser-js
An attacker gained access to the maintainer's npm account and published three malicious versions. The injected payload installed a cryptominer and a credential-stealing trojan. Over 8 million weekly downloads at the time.
Malware blockingevent-stream
A maintainer transferred ownership to an unknown account. The new maintainer injected code that stole Bitcoin wallet keys from a specific Copay application. The package had 2 million weekly downloads.
Malware blockingcolors.js / faker.js
The maintainer published versions that caused applications to print infinite ANSI sequences and nonsense strings to stdout. Thousands of applications broke on upgrade without any warning.
Release delay
Clients, proxies and deployment
Clients
npm, Yarn Classic and Berry, pnpm and Bun.
Web proxies
Zscaler, Prisma Access, Squid and other web proxies that decrypt TLS.
Deployment
Cloud as EU-hosted SaaS. Enterprise as Managed Cloud, BYO Cloud or On-Premise.
Explore supported ecosystems
See the setup, rules and incidents for each package ecosystem.
Questions
How do I configure npm to use Bytesafe Dependency Firewall?
Does it work with private npm packages?
Will it break my existing package-lock.json or yarn.lock?
Does the zero-day safety delay apply to all npm packages?
Can different npm projects have different policies?
Can npm installs go through the firewall without changing developer machines?
What happens if a npm package passes through but malware is found later?
Can firewall rules be automated?
Does Dependency Firewall work with enterprise repository platforms?
How is licensing structured?
Put npm installs behind the firewall
Point one pipeline at Dependency Firewall and read the decisions in the log. The trial runs for 14 days.