Socket.dev uses static analysis to detect malicious patterns in published packages — network calls, obfuscation, permission escalation. It's excellent at finding active threats. It doesn't measure the structural conditions that make a package worth attacking in the first place.
Catches active threats
Catches
Misses
Catches structural exposure
Catches
Misses
Both packages are clean code. No malicious patterns, no obfuscation, no suspicious network calls. Socket reports no issues. Commit flags both as CRITICAL — not because of what the code does, but because of who controls the publish token.
No suspicious network calls, obfuscation, or install scripts.
Clean publish history, no suspicious patterns detected.
Socket is excellent at catching what it's designed to catch: malicious code after it's published to a registry. But there's a window between publication and detection. Sophisticated attackers exploit that window.
Before an attacker writes a single line of malicious code, they pick a target. High-value targets share a structural profile: concentrated publish authority, high download volume, minimal organizational backup. These signals are stable, public, and measurable — they don't change between releases.
When you know which packages are structurally exposed, you can:
Five widely-used packages. Socket: no malicious code detected on any. Commit: live behavioral scores.
Loading live Commit data…
Failed to load data.
No. They're complementary. Socket detects malicious code after it's published — that's irreplaceable. Commit measures structural exposure before any attack occurs — that's a different layer. If you only have budget for one: Socket catches active threats. If you have both: Socket covers the post-publication window; Commit tells you which packages to watch most closely.
Socket catches attacks after malicious code is published. The gap is the time between publication and Socket flagging it — which ranges from minutes to days depending on how novel the technique is. That window is exploitable. Knowing which packages are high-value targets in advance lets you tighten response time and prioritize monitoring on the packages most likely to be hit.
Publisher concentration at scale is the primary signal. An attacker choosing a target wants maximum blast radius per credential compromised. A package with 1 publisher and 100M weekly downloads is structurally more attractive than one with 10 publishers and 10M downloads. That calculus is public and measurable — Commit tracks it across the entire npm registry.
The CLI, web audit, and API are free. Paid plans from $15–$29/mo add batch scanning, continuous monitoring, Slack/webhook alerts, and GitHub Action integration. See pricing →
Find out which packages in your dependencies are high-value targets before anyone attacks them.
npx proof-of-commitment --file package.json