Vibeleaderboard
Index / tool
Visit github.com
Category
Cybersecurity
Rank
Pricing
Open Source
Type
TOOL
Builder
nodejs
GitHub
327 stars
Latest release
v1.6.1
Date

About

CLI that checks if your installed Node.js version has any known security vulnerabilities.

What it does

It compares a Node release against live security and support-lifecycle data, then reports affected CVEs, patched version ranges, or end-of-life status. Checks can run from a terminal, application code, or GitHub Actions, with optional platform filtering.

Why it's ranked here

This is a focused, practical guardrail for teams that might otherwise miss runtime-level exposure. It uses Node project data, identifies specific CVEs and patched ranges, treats unsupported releases conservatively, and fits scheduled automation. Network and cache behavior keep it from being a complete security control.

What's good

The result is actionable: vulnerable releases show CVE descriptions and patched version ranges. End-of-life releases fail closed instead of appearing safe because recent advisories are unavailable. Platform filtering can remove irrelevant findings, while terminal, library, and GitHub Actions interfaces support several workflows.

Tradeoffs

Checks depend on GitHub-hosted security and release data, and request failures terminate the process rather than returning a recoverable library error. The cache validation contains a property-name mismatch that causes fresh downloads instead of reliable reuse. Library support is documented only for active Node releases, despite broader terminal compatibility.

How to use it well

Add it to continuous integration or a scheduled GitHub Actions job to catch vulnerable runtime versions before deployment. Use the library interface when application logic needs a boolean decision, and specify the target platform when relevant. Pair it with dependency scanning, because this tool assesses Node itself, not installed packages.

Technical notes+

index.js dispatches terminal use to cli and exports isNodeVulnerable for library consumers. is-vulnerable.js fetches Node security and release JSON over HTTPS, stores JSON plus ETags beside the package, evaluates ranges with semver/functions/satisfies, filters affectedEnvironments, and exits with status 1 for vulnerable or end-of-life terminal checks. In getJson, the condition compares obj.eTagValue while the store defines etagValue, so the mismatch makes the refresh branch run. Network and write errors also schedule process.exit(1), including during library calls. action.js maps a true result to a failed GitHub Action. test.js covers vulnerable, invalid, end-of-life, and platform-specific inputs, while setup-test.js checks legacy-runtime behavior.

Observed

License
MIT
Primary language
JavaScript using CommonJS modules
Packaging
Published as an npm package with an npx-compatible executable
Interfaces
Terminal command, JavaScript library export, and GitHub Action
Platform filtering
Supports aix, darwin, freebsd, linux, openbsd, sunos, win32, and android values
Dependencies
Runtime dependencies are semver and the GitHub Actions core toolkit
Testing structure
Tests are implemented in root-level test.js and setup-test.js, with no test directory shown

Read from README.md, package.json, index.js, test.js, ascii.js, action.js, setup-test.js, eol-versions.js, is-vulnerable.js, LICENSE, action.yml, .github/workflows/test.yml, .github/workflows/publish.yml.

What it can do

  • Check Node.js version for security vulnerabilities

    Installed Node.js versionSecurity vulnerability report

  • Detect known CVEs in Node.js installation

    Node.js version numberList of applicable CVEs

  • Scan system for vulnerable Node.js versions

    System environmentVulnerability assessment results

  • Validate Node.js security status

    Current Node.js installationSecurity status confirmation

  • Generate security recommendations

    Vulnerable Node.js versionRecommended security actions

Tags

nodejssecurityclivulnerability

Tech Stack

Node.js

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.