CVE-2025-12999
CRITICAL 9.1 PoC AVAILABLE ALL-YEARSUrlUtil.getBaseUrl builds the absolute URLs in a response — download links, icons, asset and API URLs — from the X-Forwarded-Host, X-Forwarded-Proto and X-Forwarded-Prefix request headers, with no check on whether the sender was a trusted proxy, falling back to the client-supplied Host header. Those responses are cached under keys that do not include the host (extension.json since 0.6.0, namespace.details.json since 0.9.0, sitemap since 0.14.5, latest.extension.version.vscode since 0.34.2). A single request carrying a forged header therefore places attacker-chosen URLs into an entry served to every other client for the lifetime of that entry — one hour by default, and cluster-wide where ovsx.redis.enabled is set. The VSIX download URL, its signature URL and the public key URL are all derived from the same base URL, so extension signing does not limit the impact: an attacker who poisons an entry supplies the package, the signature over it, and the key used to verify it. Exploitability depends on deployment topology. A server reachable directly by clients, or fronted by a proxy that relays the client's X-Forwarded-Hos
Public exploit or PoC code exists. The barrier to attack is reduced — watch closely.
Exploitation likelihood
0.3%chance of exploitation in 30 days · 26th percentile
Impact if exploited
9.1CVSS 4.0 · CRITICAL · CNA
- ConfidentialityNone
- IntegrityHigh
- AvailabilityLow
What an attacker needs
- ✓Access: Reachable over the network — no local access needed
- ✓Privileges: No account or privileges required
- ✓User interaction: No user interaction needed
- ✓Complexity: No special conditions — reliably repeatable
- ⚠Requirements: Specific conditions must be present
✓ lowers the bar for an attacker · ⚠ raises it
Proof of concept & exploit code
- reference https://github.com/eclipse-openvsx/openvsx/security/advisories/GHSA-f55q-5m46-rmxc
- github-search https://github.com/search?q=%22CVE-2025-12999%22&type=repositories
Test against your own equipment
curl -s https://vulnpedia.com/cve/CVE-2025-12999/poc.jsonMachine-readable PoC index for this CVE (for automation).For defensive triage, patch verification, and authorized testing on systems you own. Machine-readable: /cve/CVE-2025-12999/poc.json
Weakness (CWE)
- CWE-345: Insufficient Verification of Data Authenticity
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:L/SC:H/SI:H/SA:H
All CVSS metrics
- CRITICAL 9.1 v4.0 · CNA Primary
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:L/SC:H/SI:H/SA:H - CRITICAL 9.1 v4.0 · NVD Secondary
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:L/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X