Skip to main content

decode-uri-component EUVDEUVD-2026-40267

| CVE-2026-45822 MEDIUM
Uncontrolled Resource Consumption (CWE-400)
2026-06-30 seal GHSA-vcc3-ghjq-m6fr
6.6
CVSS 4.0 · Vendor: seal
View

Attack ChainAIDerived

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

  1. Access
    Send HTTP request with crafted percent-encoded query string
  2. Delivery
    Route input to decode() function
  3. Exploit
    Trigger super-linear token splitting and decodeComponents() loop
  4. Execution
    Block Node.js event loop for 6-33 seconds per request
  5. Impact
    Deny service to all concurrent legitimate users

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The vulnerable application must route attacker-controlled string input to decode-uri-component's decode() function specifically - the native decodeURIComponent() is not affected. No authentication is required (PR:N), no special configuration is needed, and no non-default setup is implied. The CVSS vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms exploitation is possible from the network against default conditions. Factors that limit exploitation: (1) the application must actually call decode-uri-component's decode() rather than the native built-in; (2) there must be a network-reachable input path - e.g., a query parameter, form field, or path segment - that reaches the decode() call without prior length or format validation; (3) the DoS severity is proportional to payload size - 200 tokens produce approximately 0.7 seconds of blocking versus 33 seconds for 1,400 tokens, so smaller inputs cause partial rather than complete denial. Applications that sanitize or truncate inputs before decode() calls are not exploitable in practice.

Impact

The CVSS 4.0 base vector (AV:N/AC:L/AT:N/PR:N/UI:N/VA:H) is consistent with the description: exploitation requires no authentication, no special attack conditions, and no user interaction, while producing high availability impact. The CVSS 4.0 base score of 6.6 (Medium) appropriately reflects a pure DoS with no confidentiality or integrity compromise. CVSS E:U confirms no exploits observed at scoring time, and no CISA KEV listing is indicated in the provided data, placing this in the 'known algorithmic flaw, not actively weaponized at scale' category. No EPSS data was provided, so exploitation probability cannot be quantified. The primary practical risk driver is transitive dependency exposure: applications may unknowingly consume this library through upstream packages and pass user-controlled strings into the decode path without sanitization. The attack is low-complexity to construct given the precise timing benchmarks published in the description, which effectively function as a proof-of-concept payload specification. CVSS vector and description are fully consistent - no contradictions to flag.

Exploit ScenarioDerived

An attacker identifies a web endpoint that passes user-supplied URL query parameters or path components through decode-uri-component's decode() function. The attacker submits an HTTP request containing a query string composed of approximately 1,400 repetitions of '%ab', triggering roughly 33 seconds of CPU blocking on the target's Node.js event loop per request. Staggering a small number of such requests across the blocking window sustains the denial, preventing all concurrent legitimate requests from being processed without requiring any credentials or prior reconnaissance beyond identifying the endpoint.

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

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

Alert me

AnalysisAIv1 – Jun 30, 2026

Super-linear algorithmic complexity in the decode-uri-component npm package (versions through 0.4.1) allows unauthenticated network attackers to cause severe CPU exhaustion and block the Node.js event loop by submitting crafted strings with large numbers of percent-encoded tokens. The decode() function splits input on '%' and iteratively invokes decodeComponents() in a pattern producing quadratic or worse time growth - 1,400 '%ab' tokens consume approximately 33 seconds of CPU, rendering single-threaded JavaScript runtimes effectively unresponsive. No public exploit is confirmed at time of analysis (CVSS E:U), but the deterministic algorithmic nature makes payload construction trivial for any attacker with a reachable input channel.

RemediationAI

Upgrade decode-uri-component to a version newer than 0.4.1, verifying the current latest release at https://www.npmjs.com/package/decode-uri-component before updating, as the upstream fix commit (fa479dafeede7bedf04e5c89aa78f2a78c664005) is confirmed but the corresponding npm release version is not independently verified from provided data. Run npm ls decode-uri-component or npm audit to surface all transitive dependencies on this package, as indirect dependents may not be immediately visible. As a compensating control prior to patching, enforce input length limits or reject strings with an excessive number of percent-encoded sequences before they reach the decode() call - this directly caps the quadratic growth and limits per-request CPU impact. Applying request body and query-string size limits at the reverse proxy or API gateway layer (e.g., nginx client_max_body_size, or express body-parser limits) adds a second line of defense with no application-level changes required, though it does not eliminate the vulnerability for inputs within normal size bounds.

Affected VersionsENISA

decode-uri-component 0.1.0 <0.5.0

Affected Packages

npm decode-uri-component fix: 0.5.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

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

Technical ContextAI · show details

The affected component is the decode-uri-component npm package by SamVerschueren (CPE: cpe:2.3:a:samverschueren:decode-uri-component:*), a JavaScript/Node.js utility that extends native decodeURIComponent() with more robust handling of malformed percent-encoded sequences. The root cause maps to CWE-400 (Uncontrolled Resource Consumption): the decode() function in index.js splits the input string on the '%' delimiter to produce N tokens, then drives each through decodeComponents() in a loop whose cumulative work scales super-linearly with the number of tokens. This is a classic algorithmic complexity (ReDoS-adjacent) vulnerability - unlike regex-based ReDoS, the attack surface is a URL parsing utility likely to receive attacker-controlled query parameters, path segments, or encoded form values in any Node.js web application that depends on this package directly or transitively. The source of the vulnerability is visible in the referenced commit at index.js (fa479dafeede7bedf04e5c89aa78f2a78c664005).

Know when Decode Uri Component 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 (seal) PRIMARY 6.6 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:U/S:N/AU:Y/R:U/V:D/RE:M/U:Amber
vuln.today AI 7.5 HIGH

Network-reachable decode() input path, no auth or interaction required; scope unchanged, only availability impacted via event-loop blocking.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Red Hat 7.5 HIGH

Primary rating from Vendor (seal).

CVSS VectorVendor: seal

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

Lifecycle Timeline

1
Patch available
Jun 30, 2026 - 10:01 EUVD

DescriptionCVE.org

decode-uri-component through 0.4.1 is vulnerable to denial of service. The decode() function splits input on '%' producing N tokens and calls decodeComponents(), exhibiting super-linear parsing time: 200 '%ab' tokens takes approximately 0.7s, 700 tokens approximately 6s, and 1400 tokens approximately 33s. An attacker can cause significant CPU consumption and event-loop blocking via crafted input.

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 1 npm packages depend on decode-uri-component (1 direct, 0 indirect)

Ecosystem-wide dependent count for version 0.5.0.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
Medium
popular npm utility library with broad transitive dependency footprint
Threat Intel
1
1 sources
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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.3%
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
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 12 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected

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