Skip to content

Back to the catalog

npm-scan
github.comrepo

npm-scan

npm-scan is a CLI supply-chain security scanner (@lateos/npm-scan) that inspects npm packages and lockfiles for behavioral attack patterns missed by npm audit/Snyk/Socket, including obfuscated payloads, credential stealers, eBPF kernel rootkits, memory-level OIDC token extraction, GitHub maintainer-account spoofing, and AI-platform-targeted key theft. It ships 23 detectors (D1-D25), validated against real campaigns like IronWorm and Miasma, and outputs SBOM (CycloneDX/SPDX) and SARIF for GitHub Security, plus a workflow to submit critical findings to CISA's VINCE with mandatory manual review. It's free (MIT) for individuals/OSS/evaluation, with paid commercial tiers ($799-$9,900/yr).

TL;DR CLI npm supply-chain scanner detecting behavioral attacks (rootkits, credential theft, GitHub spoofing) beyond npm audit/Snyk, with SBOM/SARIF output and CISA VINCE reporting.
Document

What it is

npm-scan (@lateos/npm-scan) is a CLI that scans npm packages and lockfiles for behavioral attack patterns, not CVE or version matches. Its README says npm audit and Snyk do not catch these patterns. The README also names Socket in its headline claim. It runs locally, with no telemetry and no cloud dependency, and claims under 30 seconds per CI run. It has 23 detectors, numbered D1 to D25.

What to do

Try it without installing:

npx @lateos/npm-scan scan axios

Global install and common uses:

npm install -g @lateos/npm-scan
npm-scan axios
npm-scan scan-lockfile
npm-scan express --json > findings.json

CI gate, as given for GitHub Actions. The README says GitLab CI, Jenkins and other platforms also work, and that a GitHub Action and multi-arch Docker images exist:

- name: Scan with npm-scan
  run: |
    npm install -g @lateos/npm-scan
    npm-scan scan-lockfile --fail-on critical

Other outputs and controls: CycloneDX and SPDX SBOMs, SARIF for GitHub Security, and YAML policy-as-code for allowlists and severity overrides.

To report to CISA's VINCE:

npm-scan scan lodash > scan_result.json
npm-scan submit-vince scan_result.json
npm-scan submit-vince scan_result.json --auto-approve

The second command starts the review step. The third submits after approval.

Caveats

  • The README calls the review mandatory, yet documents --auto-approve. Keep that flag out of automation so a human still reviews each submission.
  • Figures such as "95%+ confidence on real campaigns" and the IronWorm, Miasma and Dependency Confusion validation are the vendor's own claims. The page gives no methodology, false-positive rate or test set.
  • The page says "23 detectors" but numbers them D1 to D25, so two numbers are unaccounted for.
  • Pricing is inconsistent. The README quotes "$2.4K/year enterprise" in its ROI argument and "$799/yr to $9,900/yr" in the licensing section. Its "1,875x ROI" compares that price with an average breach cost.
  • Licensing: free under MIT for individuals, open-source projects and evaluation, with no time limit. A paid BLA is required once a team ships to production commercially. LICENSING.md has the details.
  • The page advises running npm-scan alongside npm audit, not instead of it.

Organisations named here

  • CISA

Technologies named here

  • npm-scan
  • npm packages / Node.js supply chain
  • npm audit
  • Snyk
  • Socket
  • GitHub Actions
  • GitLab CI
  • Jenkins
  • Docker
  • VINCE
  • SBOM/SARIF
  • npm
  • SARIF
  • CycloneDX
  • SPDX

Techniques named here

  • Obfuscated payloads
  • Credential stealers
  • Kernel rootkits
  • eBPF hooks / eBPF kernel rootkits
  • Memory extraction / memory-level credential extraction
  • GitHub author spoofing
  • AI-targeted attacks / AI platform targeting
  • Self-defending code
  • Worm-like propagation

Threat actors named here

  • IronWorm
  • Miasma
  • Dependency Confusion