Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify NAT64-enabled Weblate cloud host
-
DeliveryRegister attacker-controlled domain with AAAA record encoding private IPv4 via NAT64 prefix
-
ExploitSubmit malicious VCS repository URL to Weblate
-
ExecutionWeblate outbound validator passes NAT64 address as globally routable
-
PersistHost kernel routes connection to embedded private IPv4 target (e.g., IMDS)
-
ImpactRetrieve internal service response including credential material
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The primary exploitation path (NAT64 bypass) requires that the Weblate host operates on a network with NAT64 translation configured at the kernel level, routing 64:ff9b::/96 traffic to the embedded IPv4 endpoint; this is common in IPv6-only cloud VPCs (AWS, GCP) but not in traditional dual-stack or IPv4-only deployments. The 6to4 bypass path (2002::/16) similarly depends on 6to4 gateway availability in the network path. The multicast, ORCHIDv2, and 6to4 relay anycast bypasses do not require special host configuration but typically do not route to exploitable internal services. The attacker must be able to submit a URL to Weblate that triggers an outbound DNS resolution and HTTP/Git connection - for example, via the component repository URL field, webhook configuration, or any Weblate feature that fetches from user-supplied URLs. VCS_RESTRICT_PRIVATE must be the operative SSRF control (i.e., no independent network-layer egress filtering is in place). Exploitation is limited by the need for attacker-controlled DNS responses returning transition-encoded addresses and by the network topology of the target host. |
| Impact | CVSS 5.9 with AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N reflects genuinely elevated but operationally constrained risk. The High attack complexity (AC:H) is well-justified: the most impactful attack path (NAT64 bypass to IMDS) requires that the Weblate host operates in a NAT64-configured network environment, typical of IPv6-only or dual-stack cloud VPCs but not universal. The unchanged scope (S:U) means the vulnerability does not directly compromise adjacent systems, though SSRF to IMDS can yield cloud IAM credentials leading to broader compromise. Confidentiality impact is High because internal service responses - including credential material from AWS/GCP/Azure metadata services - can be exfiltrated. There is no integrity or availability impact. No CISA KEV listing and no public POC have been identified, making widespread opportunistic exploitation unlikely at time of analysis. EPSS data was not provided in the input, so exploitation probability cannot be quantified beyond CVSS signals. The vendor's PR:N assessment may overstate exposure for deployments where repository URL configuration requires authentication - defenders should verify which Weblate features accessible to unauthenticated users trigger outbound VCS requests in their specific deployment. |
| Exploit ScenarioDerived | An attacker with access to Weblate's repository URL configuration submits a Git repository URL whose hostname is controlled by the attacker and whose DNS AAAA record returns 64:ff9b::a9fe:a9fe (the NAT64 encoding of 169.254.169.254, the AWS IMDS endpoint). Weblate's outbound validator passes the address because Python's ipaddress classifies 64:ff9b::/96 as globally routable, but the host kernel - with NAT64 configured - routes the TCP connection to 169.254.169.254. The Weblate server receives the IMDS response containing IAM role credentials, which the attacker retrieves through Weblate's error output or a covert timing channel. No public proof-of-concept has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 10, 2026
Server-Side Request Forgery in Weblate's VCS_RESTRICT_PRIVATE control (versions 5.15 through pre-2026.6) allows bypassing of outbound request restrictions via IPv6 transition address encoding techniques. By supplying a hostname whose DNS AAAA record resolves to a NAT64-wrapped, 6to4-wrapped, or IPv4-compatible IPv6 address that encodes a private IPv4 endpoint, an attacker causes Weblate's validator to pass the address as globally routable while the host kernel routes the packet to the embedded private IPv4 target. The vulnerability carries High confidentiality impact (CVSS 5.9, AV:N/AC:H) because SSRF can expose internal services such as cloud IMDS credential endpoints; no public exploit or CISA KEV listing has been identified at time of analysis.
RemediationAI
The vendor-released patch is Weblate version 2026.6, available at https://github.com/WeblateOrg/weblate/releases/tag/weblate-2026.6; administrators should upgrade immediately. The fix is contained in weblate/utils/outbound.py and adds recursive IPv6 transition address unwrapping plus extended special-use prefix blocking. If immediate upgrade is not feasible, the most reliable compensating control is network-layer egress filtering on the Weblate host: block outbound connections from the Weblate process to RFC1918 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), loopback (127.0.0.0/8), link-local (169.254.0.0/16 and fe80::/10), and their IPv6 counterparts (fc00::/7, ::1/128), as well as the NAT64 prefix 64:ff9b::/96 and 6to4 range 2002::/16. This firewall-level restriction operates independently of application validation and cannot be bypassed by address encoding. Trade-off: overly broad egress rules may break legitimate VCS integrations with on-premises repositories; test against your repository network topology before applying. Do not treat VCS_RESTRICT_PRIVATE alone as a sufficient SSRF mitigation on affected versions.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in pypi
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Weblate's outbound URL guard in weblate/utils/outbound.py relied on Python's ipaddress.IPv6Address.is_global to classify whether a resolved IP address is safe for outbound connection. CWE-918 (Server-Side Request Forgery) applies: the root cause is incomplete sanitization of attacker-controlled network destinations. Python's is_global classifies the NAT64 well-known prefix 64:ff9b::/96 (RFC 6052) as globally routable, but on hosts with NAT64 translation configured the kernel routes these packets to the IPv4 address embedded in the last 32 bits, enabling a private-address bypass. The same logic flaw applied to: 6to4 addresses (2002::/16, RFC 3056, encodes IPv4 in bits 16-47), IPv4-compatible addresses (::N.N.N.N/96, deprecated by RFC 4291 but still routable on some hosts), multicast ranges (IPv4 224.0.0.0/4, IPv6 ff00::/8), 6to4 relay anycast (192.88.99.0/24), ORCHIDv2 (2001:20::/28), and IPv6 Segment Routing (5f00::/16). The fix in PR #19768 adds an _unwrap_ipv6_transition helper that recursively resolves the embedded IPv4 address before the is_global check, and adds explicit blocklist logic for special-use prefixes not covered by is_global. CPE cpe:2.3:a:weblateorg:weblate:*:*:*:*:*:*:*:* covers all affected versions.
Know when Weblate gets its next vulnerability
- 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
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
PR:L assigned because configuring VCS repository URLs in Weblate requires at minimum authenticated project-member access; AC:H retained because NAT64 host configuration is a prerequisite for the primary exploit path.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Weblate is a web based localization tool. From version 5.15 to before version 2026.6, Weblate's VCS_RESTRICT_PRIVATE did not properly account for some transitional IPv6 ranges, multicast addresses, or some semi-private IPv4 ranges, which allowed some addresses to bypass private range restrictions. This issue has been patched in version 2026.6.
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.
Improper input validation in Weblate versions prior to 5.15.1 lets a user who can submit translation files or restore pr
Privilege escalation in Weblate versions prior to 5.17 allows an authenticated low-privileged user to modify sensitive f
The package weblate from 0 and before 4.11.1 are vulnerable to Remote Code Execution (RCE) via argument injection when u
Argument injection in Weblate's Mercurial backend lets an authenticated user with project-scoped component.edit permissi
Weblate's REST API failed to enforce permission scope on team (group) assignments in all versions prior to 2026.7, allow
Remote code execution in Weblate's project backup restoration affects versions prior to 5.17, exploitable by authenticat
The wlc Weblate command-line client prior to version 1.17.2 is vulnerable to arbitrary file write attacks through path t
Arbitrary file read via symlink traversal in Weblate's App store metadata ZIP download affects all versions prior to 202
Arbitrary file read vulnerability in Weblate versions prior to 5.17 allows authenticated attackers to read sensitive fil
Weblate versions prior to 5.15.2 expose screenshot images through the web server without authentication controls, enabli
Path traversal in Weblate allows authenticated users to read arbitrary files outside the repository via the translation
Weblate versions up to 5.16.0 contains a vulnerability that allows attackers to an argument injection to `ssh-add` (CVSS
EUVD-2026-36113
GHSA-vmfc-9982-2m45
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB