Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify V app with URL allowlist fetch
-
DeliveryCraft URL with backslash in authority
-
Exploiturllib.parse validates trusted host
-
Executionnet.http normalizes backslash, connects internal
-
PersistReach blocked internal service
-
ImpactExfiltrate internal/cloud data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service Interpretation consistency
|
| Exploitation Conditions | Exploitation requires that a V application (≤ 0.5.2) use net.urllib.parse() to extract and allowlist the host of an attacker-controllable URL and then fetch that same URL string with net.http (get/request) - the SSRF-allowlist pattern is the concrete prerequisite. The attacker crafts a URL with a backslash in the authority section (e.g. http://allowed-host\@internal-target/) so parsing sees the trusted host but the HTTP client normalizes the backslash and connects to the internal host. No authentication, no user interaction, and no non-default library configuration is needed (PR:N/UI:N). Limiting factors: the vulnerability is inert unless the downstream app actually performs urllib-based allowlist validation in front of net.http, and reachable internal targets must exist on the network the V service can route to; the raw library bug alone does not compromise the host running it. |
| Impact | Signals are broadly consistent for a real, exploitable SSRF-class issue rather than a paper-high score. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) indicates a network-reachable, low-complexity, unauthenticated attack with no user interaction, and the impact profile (VC:N/VI:N/VA:N but SC:H) correctly models SSRF: the vulnerable app itself suffers no direct CIA loss, but a subsequent system's confidentiality is highly impacted (access to internal services). A public POC exists and a working exploit URL is documented, which raises practical risk. Counterweights: exploitability depends entirely on a downstream V application actually using urllib-based allowlist validation in front of net.http - the library flaw is not self-exploiting, so real-world exposure is bounded by that coding pattern and by V's modest deployment footprint. No EPSS score was provided and the CVE is not in CISA KEV, so widespread or automated exploitation is not evidenced; treat this as a targeted, developer-dependent risk. One caveat to verify: CVSS lists VC:N while the real-world consequence is data exfiltration from internal services (captured under SC:H) - defenders should read the subsequent-system metric, not the vulnerable-system one, when judging impact. |
| Exploit ScenarioDerived | A V-based web service accepts a user-supplied URL (e.g. a webhook, link preview, or image-fetch feature) and allowlists it against trusted external hosts before fetching. An attacker submits http://trusted.example.com\@169.254.169.254/latest/meta-data/, which urllib.parse() validates as the trusted host while net.http.get() actually connects to the internal metadata endpoint, exfiltrating cloud credentials. A public POC demonstrating the backslash bypass is available, and the low attack complexity (AC:L, no auth, no user interaction) makes this trivially repeatable once the vulnerable pattern is present. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 29, 2026
Server-side request forgery allowlist bypass in the V programming language standard library (net.urllib / net.http) through version 0.5.2 lets remote unauthenticated attackers reach internal network services that a host-based allowlist was meant to block. The flaw stems from a parser differential: net.urllib.parse() and net.http.get() disagree on how a backslash in a URL's authority is handled, so validation and connection resolve to different hosts. Publicly available exploit code exists and the issue was reported by VulnCheck, though it is not listed in CISA KEV (no public evidence of active exploitation at time of analysis).
RemediationAI
Upstream fix available (commit 85859f0 / PR #27947); a released, tagged patched version is not independently confirmed from the provided data, so update V to a build that includes commit 85859f0f3498d4091b38009c45ed390a97eeedc2 (verify against the vlang release notes) - see https://github.com/vlang/v/commit/85859f0f3498d4091b38009c45ed390a97eeedc2. Until you can rebuild against a patched compiler/stdlib, defend at the application layer: reject any URL whose authority contains a backslash before validation, and - more robustly - resolve the destination host once and pass that exact resolved value to net.http rather than re-deriving it, so the same host is used for both allowlist checks and the connection (eliminating the parser differential). As network-side compensating controls, enforce egress filtering from the V service so it cannot reach internal/link-local ranges (e.g. block 169.254.0.0/16, 127.0.0.0/8, RFC1918) at the firewall, and route outbound fetches through a forward proxy that independently enforces the allowlist; note these controls add latency and operational overhead and do not fix the underlying library disagreement.
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
The vulnerability lives in V's built-in networking modules - net.urllib (URL parsing/validation) and net.http (HTTP client). Applications commonly parse an attacker-supplied URL, extract the host with urllib.parse(), check it against an allowlist, then fetch it with http.get(). The root cause is CWE-436 (Interpretation Conflict / parser differential): a URL such as http://trusted.host\@internal.target/ is interpreted by urllib.parse() as having authority 'trusted.host' (treating the backslash as part of/terminating the host so the allowlist sees the trusted value), while net.http normalizes the backslash to a forward slash per browser-style WHATWG behavior and instead connects to 'internal.target'. The two components thus resolve different destinations from the same input string. The upstream fix (commit 85859f0, PR #27947) makes urllib treat backslash as an invalid character in the authority - should_escape and valid_userinfo no longer whitelist '\\', and the parser now rejects backslashes in the host (regression tests test_parse_rejects_backslash_in_authority) - so parsing fails rather than silently disagreeing with net.http.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N
Remote, unauthenticated, low-complexity SSRF bypass with no direct impact on the app but scope change (S:C) granting high confidentiality access to internal systems; no integrity/availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
V through 0.5.2, fixed in commit 85859f0, contains a server-side request forgery (SSRF) bypass vulnerability that allows attackers to circumvent host-based allowlists by exploiting a parser differential between net.urllib and net.http. Attackers can craft a URL containing a backslash in the authority section such that net.urllib.parse() extracts the trusted host for allowlist validation while net.http.get() normalizes the backslash and connects to the internal host, enabling access to internal network services that the allowlist was intended to block.
Latest POC
1 PoC candidate from github (unverified)
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
The V programming language standard library (versions through 0.5.2) contains an allowlist bypass vulnerability enabling unauthenticated remote attackers to access internal network services that security controls were designed to block. Organizations running V-based applications face direct risk of internal infrastructure exposure and potential lateral movement across their networks.
Apply vendor patch.
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
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
EUVD-2026-50446
GHSA-mvrj-5wv7-cfg9
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB