Impact
A prepared project backup ZIP file can be uploaded by a user who has project.add permission. The backup contains a component JSON with a repository URL that points to a private IP or uses a non‑allow‑listed scheme such as file:// or git://. During import the backup is processed using Component.objects.bulk_create, which bypasses Django’s full_clean validation and therefore never runs the validate_repo_url validator. The unvalidated URL is then written verbatim into .git/config by configure_repo(pull=False). This makes the Weblate instance able to reach arbitrary internal hosts or services through Git configuration, providing an authenticated SSRF vulnerability that can expose internal network resources. The impact is limited to the internal network from which the server can reach services; no direct remote code execution is described.
Affected Systems
The CVE affects installations of Weblate Organization’s Weblate product, specifically any version preceding 5.17.1. Any user who holds an active billing or trial plan on the hosted SaaS platform, or any account with project.add permission on self‑hosted deployments, can exploit this flaw.
Risk and Exploitability
The severity is classified with a CVSS score of 5.3, indicating moderate risk. The EPSS score is not available, and the vulnerability is not listed in CISA’s KEV catalog. The likely attack vector is authenticated internal access: a legitimate user can exploit the flaw, so the main requirement is having the project.add permission. Once the attacker uploads a crafted backup, the server will initiate outbound HTTP or other protocol requests to the specified private address, potentially revealing internal assets or exposing services otherwise unreachable from the public Internet.
OpenCVE Enrichment
Github GHSA