Find Outdated and Vulnerable JavaScript Libraries on a Page

Loads a page, lists every JavaScript library it uses, and matches versions against the Retire.js vulnerability repository: each CVE with its severity and the version that fixes it.

Public hosts only. About a handful of requests, usually finished in under 15 seconds. How we scan · Acceptable use

How it works

Enter the page URL

Script tags are collected from the HTML.

Libraries are identified

By URL patterns, filenames and, when needed, version strings inside the script itself.

CVEs are listed per library

Sorted by severity, with the safe version to upgrade to.

What this tool checks

10 checks across 1 areas. Each links to its reference page with the test, the risk and the fix.

Full reference

Page content and JavaScript

10 checks

The ones that most often decide the grade:

How vulnerable JavaScript libraries are detected

The scanner inventories scripts loaded by one page, extracts supported library versions and matches them with the Retire.js advisory database.

A JavaScript library can remain in a template long after the application stops using the feature that introduced it. If the library version has a known vulnerability, every page loading that asset carries the dependency even when the vulnerable function is not obviously visible.

Scan.now collects script URLs from the returned HTML and examines supported filenames, URL patterns and version strings inside the beginning of each accessible script. Detected versions are compared with Retire.js vulnerability ranges. The report identifies the library, evidence, advisory and fixed version without executing the script.

Fetch one pageRead the server-rendered HTML and its script references.
Identify librariesUse URLs, filenames and supported in-file version fingerprints.
Match CVEsCompare the detected version with known affected ranges.

JavaScript library scan evidence

A confident finding needs both a supported library fingerprint and a version that matches an advisory range.

SignalWhat it revealsCommon blind spot
Script filenameNames and versions such as library-1.2.3.min.js.Renamed or fingerprint-hashed bundles can remove the recognisable name.
Asset URLCDN paths, package directories and query-string versions.A stale query value can disagree with the served file.
In-file signatureLibrary banners or embedded version constants in accessible code.Minification and bundling can remove or transform the marker.
Advisory rangeWhether the detected version is included in a known vulnerable range.A CVE may affect only a feature the site does not use, which still requires review.
Fixed versionThe first release outside the affected range when the advisory provides one.Major upgrades can require compatibility testing before deployment.

What the JavaScript result means

Inventory quality and vulnerability matching are reported separately.

No known affected version

No recognised library version on the scanned page matched the current advisory data.

Known vulnerable version

The detected version falls inside an advisory range. Review exploit conditions and plan the supported upgrade.

Unidentified bundle

The page loads JavaScript that cannot be mapped to a supported library and version. Absence of a match is not proof that the bundle is current.

Manage browser dependencies

  • Upgrade to a supported release outside every matched vulnerable range.
  • Remove libraries and plugins no longer used by the page.
  • Pin dependencies in the build and use automated advisory checks before deployment.
  • Use a restrictive Content-Security-Policy and Subresource Integrity where third-party scripts must remain.

What this result does not prove

  • The scan does not execute JavaScript or discover assets loaded only after interaction.
  • Custom, renamed or heavily bundled code may not expose a supported library fingerprint.
  • A known CVE match shows applicable version evidence, not proof that an attacker exploited the site.

Guides for this tool

Background reading written to go with these results.

Frequently asked questions

Where does the vulnerability data come from?

The Retire.js repository, an open-source, community-maintained list of JavaScript libraries with known vulnerabilities, refreshed daily.

A library is flagged but I cannot upgrade it. What now?

Check whether the CVE affects a feature you use, add a strict Content-Security-Policy to limit the impact, and plan the upgrade. Some findings are avoidable without upgrading, most are not.

Why was a library missed?

Bundled and renamed libraries lose the filename and URL patterns we match. We also read version strings inside the first part of each script, but heavily minified bundles can hide them.