Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain project Administration role
-
DeliveryNavigate to project machine translation settings
-
ExploitSupply internal network URL as service endpoint
-
ExecutionTrigger Weblate configuration validation
-
PersistWeblate issues HTTP request to internal host
-
ImpactRead up to 200 chars of response in error message
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the attacker holds the per-project 'Administration' role in Weblate, which grants the project.edit permission - this is not the global superuser but a project-scoped delegated role. The machine translation feature must be available and not restricted via WEBLATE_MACHINERY to a static list of backends that disallow custom URLs. The vulnerability fires during configuration validation (save/test of a new machine translation service), so the attacker needs access to the project settings UI or the corresponding REST API endpoint (api:project-machinery-settings). What limits exploitation: the information returned is capped at 200 characters of the HTTP response body; the attacker cannot control request method/headers beyond what Weblate's validation code sends; write or code-execution impact requires chaining with additional vulnerabilities. If WEBLATE_MACHINERY is set to a closed list of standard service classes that do not accept user-supplied endpoint URLs, the attack surface is eliminated even on unpatched versions. |
| Impact | The real-world risk of CVE-2026-34244 is moderate and well-captured by the NVD CVSS score of 5.0, which is materially lower than many SSRF findings due to the combination of required low-privilege authentication and limited information disclosure (200-character response fragments only). EPSS at 0.03% (7th percentile) and SSVC designation of 'exploitation: none / automatable: no / technical impact: partial' reinforce that mass exploitation is not a realistic near-term concern. Even a mid-sized municipal IT team in sopot running an on-premises Weblate instance should treat this as a medium-priority upgrade rather than an emergency response item, provided that project Administration roles are not freely delegated to untrusted users. The scope-changed (S:C) vector metric accurately reflects that the SSRF crosses a trust boundary from the web application to the internal network, but the practical damage is constrained by the 200-character response cap and the PR:L requirement - an outside attacker first needs a foothold as a project administrator. KEV status is absent and no POC has been published. The primary risk is internal network reconnaissance: an attacker with the administration role could enumerate open ports, read metadata endpoints (e.g., cloud IMDS), or identify internal service banners, but cannot write data or achieve code execution through this vector alone. |
| Exploit ScenarioDerived | A Weblate project administrator - either a legitimately privileged user or an attacker who has compromised such an account - navigates to the project's machine translation settings and configures a service URL pointing to an internal address such as http://169.254.169.254/latest/meta-data/ (cloud IMDS) or an internal API endpoint. When they save or validate the configuration, Weblate issues an outbound HTTP GET to that address and returns the first 200 characters of the response body in the validation error, disclosing instance metadata, internal service banners, or other sensitive details to the attacker. No public exploit code exists, and the attack requires prior authenticated access with project-level administration rights. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 16, 2026
Server-Side Request Forgery in Weblate's project-level machine translation configuration allows an authenticated project administrator to probe internal network services and read partial responses. Any user holding the per-project 'Administration' role (which grants project.edit permission) can supply a crafted URL as a machine translation service endpoint; during validation Weblate issues an outbound HTTP request to that URL and reflects up to 200 characters of the response body in the resulting error message. All Weblate deployments running versions prior to 5.17 are affected; no public exploit code exists and no active exploitation has been confirmed at time of analysis.
RemediationAI
Upgrade Weblate to version 5.17 or later, which is available via PyPI (pip install --upgrade weblate) and through the official Docker images. The vendor advisory is at https://github.com/WeblateOrg/weblate/security/advisories/GHSA-xrwr-fcw6-fmq8 and the fixing pull request is https://github.com/WeblateOrg/weblate/pull/18684. For deployments that cannot immediately upgrade, the official workaround is to restrict which machine translation backends are available by setting the WEBLATE_MACHINERY environment variable or Django setting to a fixed allowlist of known-good service classes, which prevents users from supplying arbitrary endpoint URLs. Additionally, restricting the 'Administration' role to fully trusted users limits the pool of potential abusers. Note that the fix's runtime private-IP blocking falls back to hostname-only validation when an HTTP proxy is configured, so proxy-based deployments should also apply the ALLOWED_MACHINERY_DOMAINS allowlist after upgrading.
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 (cpe:2.3:a:weblateorg:weblate:*:*:*:*:*:*:*:*) is a Django-based web localization platform distributed via PyPI. The machine translation subsystem allows project-level configuration of external service endpoints. The root cause (CWE-200, Information Disclosure via SSRF) is in the configuration-validation path: the BaseMachineTranslation class calls http_request() against a user-supplied URL without first checking whether the resolved destination is a private/loopback address, and the check_failure() method then extracts and surfaces up to 200 characters of the remote response body in the error message returned to the requesting user. The scope of the SSRF is internal-network reachability from the Weblate application server. The fix in 5.17 introduces an ALLOWED_MACHINERY_DOMAINS allowlist setting, passes allow_private_targets=False into validation calls, and suppresses error body reflection for untrusted hosts; the companion commit also adds validate_request_url() and is_allowlisted_hostname() utilities to enforce DNS-resolved peer-IP checks (with a noted fallback to hostname-only validation when an HTTP proxy is in use).
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:L/PR:L/UI:N/S:C/C:L/I:N/A:N
Network-reachable web app, low-privilege project admin role required, scope changes to internal network, confidentiality limited to 200-char response fragment.
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
Weblate is a web based localization tool. In versions prior to 5.17, a user with the project.edit permission (granted by the per-project "Administration" role) can configure machine translation service URLs pointing to arbitrary internal network addresses. During configuration validation, Weblate makes an HTTP request to the attacker-controlled URL and reflects up to 200 characters of the response body back to the user in an error message. This constitutes a Server-Side Request Forgery (SSRF) with partial response read. This issue has been fixed in version 5.17. If developers are unable to immediately upgrade, they can limit available machinery services via WEBLATE_MACHINERY setting.
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.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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-23004
GHSA-xrwr-fcw6-fmq8
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB