Skip to main content

uriparser CVE-2025-67899

LOW
Uncontrolled Recursion (CWE-674)
2025-12-14 cve@mitre.org
2.9
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

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

  1. Access
    Supply crafted URI with many commas
  2. Exploit
    Trigger unbounded recursion in ParseMustBeSegmentNzNc
  3. Impact
    Exhaust thread stack and crash process (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Recursion depth limits
Exploitation Conditions

Exploitation requires that the consuming application pass attacker-controlled, unvalidated URI input to uriparser's parsing routines (e.g. uriParseUriA/uriParseSingleUri) so that execution reaches the recursive segment parser ParseMustBeSegmentNzNc; the triggering input is a long or crafted URI such as one containing many commas in a path segment. Limiting factors: the flaw yields only a stack-exhaustion crash (availability loss, no confidentiality/integrity impact per CVSS C:N/I:N); it is only reachable if the application does not impose an input-length cap before parsing; NVD rates complexity high (AC:H), implying some tuning of input depth may be needed to exhaust the stack; and because uriparser is a library, reachability and whether the vector is network or local depends entirely on how the embedding application accepts URIs. No authentication is required at the library level (PR:N).

Impact

This is a genuinely low-priority issue rather than a hidden critical. The NVD CVSS 3.1 base score is 2.9 (LOW) with vector AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L, meaning no confidentiality or integrity impact and only limited availability impact (a crash). No EPSS score, CISA KEV entry, or public exploit was provided in the input, so there is no signal of active or imminent exploitation; status is 'no public exploit identified at time of analysis.' The one notable tension is the attack vector: NVD assigned AV:L (local), but uriparser is a general-purpose URI-parsing library and in most real deployments the URI string it parses originates from untrusted network input, which would make the practical vector network-reachable - this discrepancy should be verified against how the consuming application exposes the parser. The vendor ChangeLog describes impact as 'denial of service or more,' leaving open a theoretical possibility of memory corruption beyond a crash, but no evidence of code execution is provided and the CWE (CWE-674, uncontrolled recursion) and symptoms point to stack exhaustion / DoS. Net: low real-world risk, patch during normal maintenance; the input's 'Information Disclosure' tag is inconsistent with the actual DoS nature of the flaw.

Exploit ScenarioDerived

An attacker submits a specially crafted URI - for example a long segment containing many commas, as demonstrated against ParseMustBeSegmentNzNc - to an application that calls uriparser to parse it. The recursive-descent parser recurses once per input character across its 13 recursion sites, exhausting the thread stack and crashing the host process (denial of service). The researcher demonstrated the triggering condition, but no public weaponized exploit is identified in the provided data.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
No patch listed yet 0.1% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 14, 2026

Stack exhaustion from uncontrolled recursion in uriparser through 0.9.9 allows a crash (denial of service) when an application passes an over-long or crafted URI - such as a path segment containing many commas - into the library's parsing routines. The flaw is rated low severity (CVSS 3.1 base 2.9 from NVD, assessed here as AV:N/AC:L/PR:N/UI:N with only availability impact), requires no authentication at the library level, and is reachable only when the embedding application does not cap URI length before calling uriParseUriA/uriParseSingleUri and related entry points. No confirmed active exploitation (not in CISA KEV) and no public exploit code identified at time of analysis; an upstream fix exists in PR/284, which removes all 13 recursion cases, but a released patched version is not independently confirmed.

RemediationAI

Upstream fix available (PR/commit #284); released patched version not independently confirmed - administrators should track https://github.com/uriparser/uriparser/pull/284 and the ChangeLog entry marking CVE-2025-67899 as fixed, and update to the first uriparser release that incorporates that commit as soon as it is published rather than assuming a specific version number. Where immediate upgrading is not possible, the most effective compensating control is an input-length cap on any URI string before it reaches uriParseUriA/uriParseSingleUri - truncate or reject inputs beyond a few kilobytes and reject URIs whose path or host segments contain abnormally long runs of commas or sub-delimiters (for example more than a few hundred consecutive or repeated delimiters), with the trade-off that legitimate but very long or heavily delimited URIs will be refused. Running parsing in a child process or thread with a bounded stack (for example setrlimit on thread stack size) converts the stack overflow into a contained, catchable failure instead of a process-wide crash, at the cost of added complexity and reduced throughput. Because the flaw only yields an availability crash with no confidentiality or integrity impact, these controls are proportionate for exposed services that cannot yet patch; no authentication-based mitigation is applicable since the library requires none (PR:N). Vendor and community advisories to monitor include https://github.com/uriparser/uriparser/issues/282 and http://www.openwall.com/lists/oss-security/2025/12/15/1.

Affected ProductsAI

The affected product is the uriparser C library, versions through 0.9.9 (i.e. 0.9.9 and earlier), covering the ParseMustBeSegmentNzNc path-segment parser and the other indirectly recursive helpers in src/UriParse.c. Because uriparser is a library rather than a standalone service, every application, framework, or language binding that embeds it and forwards untrusted URI input is in scope, including any program calling uriParseUriA, uriParseSingleUriA, uriParseUriEx or equivalent single-URI parse entry points on attacker-influenced data without a prior length limit. No CPE strings were supplied in the source data, so affected deployments must be identified by inspecting bundled uriparser versions; the upstream issue is tracked at https://github.com/uriparser/uriparser/issues/282 with the fix under https://github.com/uriparser/uriparser/pull/284 and public discussion at http://www.openwall.com/lists/oss-security/2025/12/15/1.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

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

Technical ContextAI · show details

uriparser is a small C library for RFC 3986 URI parsing and reference resolution, commonly embedded in desktop, server, and language-binding components that ingest URIs. The defect is CWE-674 (Uncontrolled Recursion): internal recursive-descent helpers - notably ParseMustBeSegmentNzNc for path segments and other indirect cycles such as ParseOwnHostUserInfo, ParseIpFutStopGo, ParseIpFutLoop and ParseHexZero - recurse once per input element without depth limiting, so a URI containing a very large number of commas (or similarly repeated sub-delimiters) grows the call stack until it overflows. NVD rates it AV:L/AC:H with only C:N/I:N/A:L, while the independent assessment rates it AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L, reflecting that reachability and whether the vector is local or network depend entirely on how the consuming application accepts URI input; in both readings the sole security impact is availability loss from a crash, with the tag 'Information Disclosure' in one feed being inconsistent with the assessed C:N/I:N impact. The upstream ChangeLog for PR/284 states the fix 'dissolves all 13 cases of recursion, both direct and indirect,' converting the recursive helpers into iterative loops (for example a tail_call label with goto and a while-loop rewrite of ParseIpFutStopGo), which eliminates stack growth proportional to input length rather than merely bounding it.

Know when the next one hits your stack

  • 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 (mitre) PRIMARY 2.9 LOW
AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
vuln.today AI 5.3 MEDIUM

URIs parsed by this library are typically attacker-controlled network input and crafting many commas is trivial, so AV:N/AC:L; impact is a stack-exhaustion crash only, hence A:L with C:N/I:N.

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

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Local
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
Low

DescriptionCVE.org

uriparser through 0.9.9 allows unbounded recursion and stack consumption, as demonstrated by ParseMustBeSegmentNzNc with large input containing many commas.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
widely embedded open-source C URI-parsing library, moderate real-world footprint
Data Quality
3 sources
Confidence: Low

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 LOW
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.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
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Low

Priority Score

14
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +14
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.

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