Free tool · no signup

npm audit online: scan your lockfile

Paste your package-lock.json or yarn.lock, or drop the file in. You get every known vulnerability and malicious package in your dependency tree, with the version that fixes each one.

By the Bug Circuit security team · Last updated

Free, no signup. Your file is read in your browser. Only package names and versions are sent to osv.dev, the open vulnerability database run by Google, to look up known advisories. No code, paths or registry addresses leave your device.

Are my npm dependencies vulnerable? Paste the lockfile. The tool checks each package version against the OSV database and groups the advisories by package, with severity and the fixed version. Only names and versions leave your browser.

How it works

How the audit works

The tool reads your lockfile in the browser. For package-lock.json it supports lockfile versions 1, 2 and 3, and it reads yarn.lock in the classic format. It builds a list of every distinct package and version, and marks the ones that are only development tools where the lockfile says so. Local folders, links and git or file dependencies are skipped, because they are not registry releases.

It then asks OSV (osv.dev), the open vulnerability database run by Google, which of those versions have a published advisory. Only package names and version numbers are sent, in batches. The lockfile, your registry addresses and any tokens stay on your device. For each advisory found, the tool reads the details and works out the fixed version for the release line you are on, because many advisories list a separate fix for each line.

The report groups the results by package and sorts them by severity. Advisories that start with MAL are reports of malicious packages: code that steals secrets or runs commands when installed. Remove those and assume any secret the machine could reach is exposed.

What to do with the result

Start with the critical and high items that are not development-only. Run npm audit fix first. It applies every fix that stays inside the version ranges you allow. For a package that remains, find what pulls it in with npm ls and update that parent. A flaw in a development tool matters less to a running site but still matters to your build machine, so do not ignore it.

An advisory is a published flaw, not proof of an attack on you. Whether it can be exploited depends on how your code calls the package. That is why the report keeps the advisory identifiers, so you can read the details. Add the check to your build pipeline as well, because new advisories appear every day for versions that were clean yesterday.

Worked examples

A small old project

Lockfile with lodash 4.17.15, minimist 1.2.0, express 4.17.1 and jest 29.7.0 (development only)

3 of 4 packages have advisories: 9 in total (1 critical, 3 high).
lodash 4.17.15: 5, minimist 1.2.0: 2, express 4.17.1: 2.
Critical: Prototype Pollution in minimist, fixed in 1.2.6.

Result on 24 Oct 2026. The counts grow over time as researchers publish new advisories.

A clean lockfile

A lockfile where every version is current

No known advisories in 412 packages.

A clean result means nothing is published yet. Check again after each release and in CI.

A malicious package

A lockfile that includes a package reported as malware

Critical: reported as malicious. Remove it.

Remove the package, rebuild from a clean lockfile and rotate any token or key the machine could reach.

Frequently asked questions

Is my lockfile uploaded anywhere?
No. The file is read in your browser. Only package names and versions are sent to osv.dev to look up advisories. Your registry addresses, tokens and code never leave your device.
How is this different from running npm audit?
npm audit does the same job from the command line and uses the GitHub advisory data. This tool uses the OSV database, which also covers malicious packages and other sources, and needs no install, so it is handy for a quick look or a project you cannot run.
Which lockfiles does it read?
package-lock.json and npm-shrinkwrap.json (lockfile versions 1, 2 and 3), and the classic yarn.lock. For pnpm or Yarn 2 and later, run pnpm audit or yarn npm audit.
What does a MAL advisory mean?
It is a report that the package itself is malicious, for example code that steals environment variables. Remove it and treat any secret the machine could reach as exposed.
Do development dependencies matter?
Less for the running site, but they run on your laptop and build server, and many supply chain attacks start there. Fix them, after the production ones.
Why does it find different results from another scanner?
Databases differ in coverage and in how they match version ranges. Treat each result as a list to read. Use more than one tool if the stakes are high.
Is there a size limit?
The tool checks up to 6,000 distinct packages and reads up to 400 advisories at once. A very large monorepo should be audited one project at a time.

Keep reading

See what attackers see, for free

Run the free passive check on your website. No login, no impact on your site, results in seconds.

Ready for the full manual audit? See pricing

npm Audit Online: Scan package-lock.json · Bug Circuit