Skip to main content

npm-check-updates EUVDEUVD-2026-55804

| CVE-2026-73035 MEDIUM
Improper Neutralization of Escape, Meta, or Control Sequences (CWE-150)
2026-08-10 VulnCheck GHSA-xm8c-hvjf-c5q9
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Attacker publishes malicious npm package with escape sequences in homepage/repo fields
  2. Delivery
    Developer adds or audits package as a project dependency
  3. Exploit
    Developer runs ncu --format homepage (non-default flag)
  4. Execution
    npm-check-updates reads unfiltered homepage metadata
  5. Persist
    Escape sequences written directly to terminal output
  6. Impact
    Terminal processes OSC/CR sequences, manipulating display or setting attacker-controlled window title

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Escape character neutralization
Exploitation Conditions

Exploitation requires all three of the following conditions: (1) the developer or CI pipeline explicitly invokes npm-check-updates with the --format homepage or --format repo flag - these are non-default options absent from a standard ncu run; (2) at least one dependency in the project's scope has attacker-controlled escape sequences embedded in its homepage, repository, engines.node, or peer dependency metadata fields in package.json; and (3) the installed npm-check-updates version is 23.0.2 or earlier. The injection code paths for peer dependency reason strings and engine constraints are additionally gated on ncu detecting unresolvable conflicts or version mismatches for those packages. Exploitation is limited to terminal output manipulation on the invoking user's workstation or CI runner session and does not enable remote code execution, privilege escalation, or data exfiltration. Production servers running npm-check-updates are not a typical deployment target and are unlikely to be affected.

Impact

The CVSS 4.0 score of 5.3 (Medium) is broadly appropriate but may overstate complexity: the provided vector AV:N/AC:L/AT:N/PR:N/UI:P reflects that attack complexity is assessed as low, though exploitation in practice requires a developer to explicitly invoke two non-default flags (--format homepage or --format repo) while also having a malicious package in their dependency tree - conditions that together reduce realistic exploitation probability. There is no EPSS data provided; exploitation likelihood is inferred from the CVSS vector and the non-default flag requirement. No CISA KEV listing exists and no confirmed in-the-wild exploitation has been reported. The impact is strictly limited to terminal output manipulation (VI:L, VC/VA/SC/SI/SA all N), meaning this cannot achieve code execution, credential theft, or availability disruption through this vector alone. This is a developer-tooling supply-chain vector targeting workstations and CI environments, not production servers. Real-world priority is low for most organizations unless CI pipelines explicitly use the affected format flags against untrusted package sources.

Exploit ScenarioDerived

A threat actor publishes a malicious npm package to the public registry and embeds an OSC terminal escape sequence such as \x1b]0;pwned\x07 in the homepage field of its package.json, or a bare carriage return (\r) in the repository field to overwrite a rendered URL with attacker-controlled text. When a developer auditing dependency updates runs ncu --format homepage on a project that lists this package as a dependency, npm-check-updates reads the metadata, interpolates it unfiltered into the terminal table, and the escape sequence executes in the developer's terminal - setting the window title to attacker-controlled text or making a malicious URL appear to display as a legitimate one. No public exploit code exists beyond the fix PR's test cases, which demonstrate the attack precisely.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 10, 2026

Terminal escape sequence injection in npm-check-updates through 23.0.2 enables a supply-chain attacker who controls a malicious npm package's metadata to embed arbitrary VT100/OSC control sequences in the homepage or repository URL fields of package.json. When developers run ncu --format homepage or --format repo, these unfiltered sequences are written directly to the terminal, allowing output overwriting via bare carriage returns, terminal title hijacking via OSC sequences, and other display manipulation on developer workstations or CI runners. No public exploit has been identified at time of analysis and no CISA KEV listing exists, but the fix PR's test suite demonstrates the exact attack pattern using OSC title-setting sequences and CR overwrites.

RemediationAI

Upgrade npm-check-updates to a version that includes commit b554b84848fc0b08a9d2b3d3db15e351387168cf; verify the installed version includes this commit by checking the package changelog or running npm info npm-check-updates to confirm the latest published version post-fix, as an exact patched release number is not confirmed in the available intelligence. The upstream patch is at https://github.com/raineorshine/npm-check-updates/commit/b554b84848fc0b08a9d2b3d3db15e351387168cf. If immediate upgrade is not possible, the primary compensating control is to omit the --format homepage and --format repo flags from all ncu invocations - doing so prevents the vulnerable code path from executing entirely, since the injection only occurs through those output formatters. CI pipelines and developer scripts using ncu should be audited for these flags. Note that removing the flags reduces output verbosity, which is the only operational trade-off.

Affected VersionsENISA

npm-check-updates patch: b554b84848fc0b08a9d2b3d3db15e351387168cf
npm-check-updates 0 ≤23.0.2

Affected Packages

euvd npm_check_updates no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in src/lib/logging.ts of npm-check-updates (CPE: cpe:2.3:a:raineorshine:npm-check-updates:*:*:*:*:*:*:*:*), a Node.js CLI tool for auditing and upgrading npm dependency versions. CWE-150 (Improper Neutralization of Escape, Meta, or Control Sequences) describes the root cause: package-registry-supplied strings from homepage and repository fields were interpolated directly into terminal output via toDependencyTable() without sanitization. Node.js terminal emulators process ANSI/VT100 escape sequences, OSC sequences (e.g., ESC]0;title\x07 sets the terminal window title), and bare C0 control characters like CR (0x0D) which can overwrite rendered lines. The patch in commit b554b84 introduces a sanitizeForDisplay() function combining Node.js's built-in stripVTControlCharacters() from node:util with a regex stripping all C0 and C1 control characters (U+0000-U+001F, U+007F-U+009F). The fix was applied to multiple output paths: homepage/repo URL display, peer dependency error messages in printIgnoredUpdatesDueToPeerDeps, engine constraint messages in printIgnoredUpdatesDueToEnginesNode, and the general error table renderer.

Know when Npm Check Updates gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.1 LOW

High complexity because exploitation requires both non-default --format flags and a malicious package in scope; UI:R since the developer must actively invoke those flags; I:L only for terminal display manipulation.

3.1 AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

npm-check-updates through 23.0.2, fixed in commit b554b84, contains a terminal escape sequence injection vulnerability that allows an attacker to embed arbitrary terminal control characters in a dependency's package.json homepage or repository URL fields. When a developer runs ncu with the --format homepage or --format repo option, unfiltered escape sequences are written directly to the terminal, enabling malicious output manipulation or other terminal-dependent effects.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Medium
widely used Node.js developer CLI tool for npm dependency management
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy