Security Vulnerability Report
中文
CVE-2026-44928 CVSS 2.9 LOW

CVE-2026-44928

Published: 2026-05-08 08:16:44
Last Modified: 2026-05-12 15:00:56

Description

In uriparser before 1.0.2, the function family EqualsUri can misclassify two unequal URIs as equal.

CVSS Details

CVSS Score
2.9
Severity
LOW
CVSS Vector
CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:uriparser_project:uriparser:*:*:*:*:*:*:*:* - VULNERABLE
uriparser < 1.0.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/* * PoC for CVE-2026-44928 * Demonstrates unequal URIs being classified as equal in uriparser < 1.0.2 */ #include <stdio.h> #include <uriparser/Uri.h> int main() { // URI A and URI B are logically different // Example scenario involving specific encoding or path issues char uriA[] = "http://example.com/path"; char uriB[] = "http://example.com/path/."; // Hypothetical case UriParserStateA stateA, stateB; UriUriA uriStructA, uriStructB; stateA.uri = &uriStructA; stateB.uri = &uriStructB; if (uriParseUriA(&stateA, uriA) != URI_SUCCESS) { return 1; } if (uriParseUriA(&stateB, uriB) != URI_SUCCESS) { return 1; } // In vulnerable versions, this might incorrectly return TRUE if (uriEqualsUriA(&uriStructA, &uriStructB)) { printf("[!] Vulnerability detected: URIs are classified as equal.\n"); } else { printf("[+] URIs are correctly classified as different.\n"); } uriFreeUriMembersA(&uriStructA); uriFreeUriMembersA(&uriStructB); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-44928", "sourceIdentifier": "[email protected]", "published": "2026-05-08T08:16:44.153", "lastModified": "2026-05-12T15:00:56.403", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In uriparser before 1.0.2, the function family EqualsUri can misclassify two unequal URIs as equal."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N", "baseScore": 2.9, "baseSeverity": "LOW", "attackVector": "LOCAL", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.4, "impactScore": 1.4}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-670"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:uriparser_project:uriparser:*:*:*:*:*:*:*:*", "versionEndExcluding": "1.0.2", "matchCriteriaId": "069C54F3-2AD5-4384-8DBD-FD4D001F8DD5"}]}]}], "references": [{"url": "https://github.com/uriparser/uriparser/pull/305", "source": "[email protected]", "tags": ["Issue Tracking", "Patch"]}]}}