Skip to content

Back to the catalog

What is a dependency firewall?
aikido.devarticle

What is a dependency firewall?

Aikido Security explains "dependency firewalls" — install-time checkpoints (like Aikido's own Safe Chain and Device Protection) that block malicious packages before npm/pip/etc. install commands complete, rather than scanning after the fact. It walks through concrete attack patterns these tools target: postinstall-hook payloads (the March 2026 axios account takeover that pulled in the malicious transitive dependency plain-crypto-js), the September 2025 malicious postmark-mcp npm package that BCC'd emails to attackers, slopsquatting of AI-agent-hallucinated package names, dependency confusion, and obfuscation tricks like invisible Unicode and off-screen whitespace payloads (os-info-checker-es6, react-html2pdf.js).

TL;DR Vendor explainer on install-time "dependency firewalls" that block malicious npm/pip packages before they run, illustrated with the axios, chalk/debug, and postmark-mcp supply-chain incidents.
Document

What it is

Aikido's explainer on the "dependency firewall" pattern, going beyond the concept to name the specific attacks it defends against and the concrete checks a firewall should perform. It is vendor content (Aikido Intel is their feed), but it carries actionable detail: which checks to require, and a native package-manager control you can adopt without buying anything.

How it works

A dependency firewall is an install-time checkpoint that inspects every package — including transitive dependencies, where most attacks hide — before download/install, regardless of whether a human, CI, or an AI agent triggered it. The page enumerates the checks a firewall "worth using" covers:

  • Known malware — cross-reference against a live threat feed; the feed must move faster than the attacker (a package flagged 3 days late has already run).
  • Minimum package age — block/delay versions published in the last 24–48h, since most malicious releases are pulled within a day or two.
  • Dependency confusion, typosquats, unclaimed names — including "slopsquatting," where attackers register package names that AI agents hallucinate or that appear in docs/READMEs but were never published.
  • Install-script behavior — static rules or sandboxed execution inspecting what postinstall hooks connect to, read, and spawn.
  • Maintainer / account-takeover signals — e.g., an unexpected new maintainer.

Why it matters

Concrete incidents the page cites:

  • axios (March 2026): hijacked maintainer account pushed malicious versions (~100M weekly downloads); payload arrived via a new transitive dependency plain-crypto-js, whose postinstall hook dropped a cross-platform RAT. The package existed under 24 hours before being pulled in.
  • debug/chalk compromise: 18 packages, >2 billion combined weekly downloads, in one wave.
  • Postmark-impersonating MCP server (Sept 2025): first confirmed malicious MCP server on npm; BCC'd every outgoing email to an attacker address.

Aikido Intel now analyzes up to 100,000 malicious packages/day (up from ~20,000 a year ago); in Q2 2026 it flagged 19,500 malicious out of ~7.5M package versions.

What to do

The most immediately actionable item requires no vendor product: every major npm-ecosystem package manager now ships a minimum release age setting that refuses to install any version newer than a configurable threshold. The page names pnpm, Yarn, Bun, and npm itself. Set this (24–48h per the page's reasoning) to close the early-detection window. The page gives no exact config keys/commands.

Caveats

Vendor post; "the specific checks vary between tools" and sandboxed install-script inspection is attributed to "more capable firewalls" only. The download/attack metrics are Aikido's own figures. No commands or version-specific config are provided — you'll need each package manager's docs to actually set minimum release age.

Organisations named here

  • plain-crypto-js
  • slopsquatting

Technologies named here

  • Aikido Intel
  • axios
  • Aikido Safe Chain
  • plain-crypto-js
  • debug
  • Aikido Device Protection
  • chalk
  • npm
  • pnpm
  • Yarn
  • Bun
  • pip
  • uv
  • Poetry
  • postmark-mcp
  • Model Context Protocol
  • Aikido Security

Techniques named here

  • Postinstall hook payload delivery
  • Maintainer account takeover / publish token theft
  • Malicious MCP server impersonation
  • Slopsquatting
  • Typosquatting
  • Dependency confusion
  • Unclaimed package name exploitation
  • Malicious install script behavior
  • Obfuscation via invisible Unicode characters
  • Obfuscation via off-screen whitespace
  • Obfuscation via image file smuggling

Threat actors named here

  • axios npm account hijack attacker
  • plain-crypto-js
  • debug and chalk compromise attacker
  • Postmark MCP server impersonation attacker
  • Slopsquatting attackers
  • os-info-checker-es6
  • react-html2pdf.js