Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify endpoint parsing user-supplied URIs
-
DeliverySubmit crafted malformed mailto: URI
-
ExploitTrigger uncaught exception in mailto.ts parser
-
ExecutionCrash request handler or process
-
ImpactDenial of service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling completeness
|
| Exploitation Conditions | Exploitation requires the target application to invoke uri-js's URI.parse() on attacker-controlled input containing a crafted mailto: scheme URI (the vulnerable Mailto Header Handler in src/schemes/mailto.ts). No authentication or special privileges are needed (PR:N), and the malicious URI can be delivered remotely through any input channel the app parses. Limiting factors: impact is confined to a low-severity availability hit (an uncaught exception) rather than code execution or data exposure; applications that wrap URI.parse in exception handling, or that never parse untrusted mailto URIs, are not affected; and there is no fixed version, so mitigation relies on caller-side try/catch or input validation. Affects uri-js versions up to and including 4.4.1. |
| Impact | This is a low-to-moderate real-world risk that maps well to its 5.3 (CVSS 4.0) score. The vendor vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L describes a remotely reachable, unauthenticated, low-complexity flaw whose ONLY technical impact is a low-severity availability hit (VA:L) - confidentiality and integrity are explicitly N, so this is a denial-of-service/robustness bug (CWE-248 uncaught exception), not information disclosure. E:P in the vector plus the reference to garycourt/uri-js issue #103 confirms 'publicly available exploit code exists,' but there is no CISA KEV listing and no EPSS score in the input, so there is no evidence of active exploitation - treat POC availability and active exploitation as distinct signals. Note a data conflict: the Tags label this 'Information Disclosure,' which directly contradicts the CVSS impacts (VC:N, only VA:L) - the actual effect is an application-crashing exception, not data disclosure. Realistic impact is bounded because the crash only propagates if the consuming application calls URI.parse on attacker-controlled mailto: input without exception handling; many callers wrap parsing in try/catch, further limiting blast radius. This is a hygiene/patch-when-convenient issue rather than an emergency, tempered by the fact that the maintainer has not responded and the project is effectively unmaintained. |
| Exploit ScenarioDerived | An attacker submits a malformed mailto: URI (e.g., via a form field, API parameter, message header, or webhook payload) to an application that calls uri-js URI.parse() on that input. The crafted argument to the mailto header handler triggers an uncaught exception in src/schemes/mailto.ts, crashing the request handler or, in a single-threaded Node.js process without proper error handling, the whole service. Public proof-of-concept exists in the project's GitHub issue #103. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 30, 2026
An uncaught exception in the mailto: scheme handler of uri-js through 4.4.1 allows remote attackers to disrupt or crash applications that call URI.parse() on attacker-supplied mailto URIs. The flaw is remotely reachable and requires no authentication (CVSS 4.0 vector PR:N, AV:N), but its impact is limited to a low-severity availability hit - the crafted input triggers an unhandled exception rather than code execution, data disclosure, or integrity loss. Publicly available exploit code exists, referenced through the upstream GitHub issue tracker, though there is no indication of confirmed active exploitation; the upstream project has not responded to the report, so no fixed version is available.
RemediationAI
No vendor-released patch identified at time of analysis; the upstream project has not responded to the issue report, so no fixed version number exists to cite. As a direct compensating control, wrap every URI.parse() call that can receive untrusted input in a try/catch block and treat a parse failure on mailto: URIs as a rejected/invalid input rather than letting the exception propagate - the trade-off is that legitimate but malformed mailto values are dropped and callers must handle the failure path gracefully. Alternatively, validate or pre-sanitize mailto: input (rejecting or normalizing malformed headers and address fields) before passing it to uri-js, acknowledging that aggressive validation may reject some edge-case valid URIs. Applications that never parse untrusted mailto URIs, or that already contain exception handling around URI.parse(), are not affected and require no change. Track https://github.com/garycourt/uri-js/issues/103 and https://vuldb.com/vuln/412124 for a future upstream fix, and if mailto parsing is not a needed feature, consider disabling or stubbing mailto scheme support in the calling code.
Affected VersionsENISA
Affected Packages
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
uri-js is a JavaScript/Node.js library that implements RFC 3986 URI parsing and serialization, widely consumed as a dependency in web and server-side stacks. The vulnerable component is the Mailto Header Handler implemented in src/schemes/mailto.ts, which is invoked when URI.parse() encounters a mailto: scheme. CWE-248 (Uncaught Exception) identifies the root cause: the mailto scheme parser does not defensively handle a malformed 'to' argument, so a parsing failure throws a JavaScript exception that propagates out of URI.parse() to the calling application. The CPE cpe:2.3:a:garycourt:uri-js:*:*:*:*:*:*:*:* designates all published versions of the garycourt/uri-js package, with the reported affected range extending up to and including 4.4.1. Any application that passes untrusted input to URI.parse() and does not wrap the call in exception handling is exposed to an unhandled-exception condition that can abort request handling or crash a process.
Know when Uri Js 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P
Remotely reachable unauthenticated parser input (AV:N/PR:N); uncaught exception yields only limited availability loss (A:L) with no confidentiality/integrity impact; parsing needs no user interaction (UI:N).
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A weakness has been identified in garycourt uri-js up to 4.4.1. This affects the function URI.parse of the file src/schemes/mailto.ts of the component Mailto Header Handler. This manipulation of the argument to causes uncaught exception. The attack may be initiated remotely. The exploit has been made available to the public and could be used for attacks. The project was informed of the problem early through an issue report but has not responded yet.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
URI.js (aka urijs) before 1.19.6 mishandles certain uses of backslash such as http:\/ and interprets the URI as a relati
CRHTLF can lead to invalid protocol extraction potentially leading to XSS in GitHub repository medialize/uri.js prior to
URL Confusion When Scheme Not Supplied in GitHub repository medialize/uri.js prior to 1.19.11. Rated medium severity (CV
Open Redirect in GitHub repository medialize/uri.js prior to 1.19.10. Rated medium severity (CVSS 6.1), this vulnerabili
URI.js is vulnerable to URL Redirection to Untrusted Site. Rated medium severity (CVSS 6.1), this vulnerability is remot
URI.js is a Javascript URL mutation library. Rated medium severity (CVSS 5.3), this vulnerability is remotely exploitabl
Denial of service in uri-js through 4.4.1 lets remote, unauthenticated attackers stall a Node.js process indefinitely: t
Improper UTF-8 percent-decoding in uri-js through 4.4.1 lets remote, unauthenticated attackers feed crafted percent-enco
URI.js is a javascript URL mutation library (npm package urijs). Rated medium severity (CVSS 6.5), this vulnerability is
EUVD-2026-90361
GHSA-cw9r-3wqp-32hm
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB