Register for the AI for Security Summit: Join Figma, Perplexity & Wiz

CVE-2026-34242
Python vulnerability analysis and mitigation

Overview

CVE-2026-34242 is an arbitrary file read vulnerability in Weblate, a web-based localization tool, caused by improper symlink validation in the ZIP download feature. Affecting all versions prior to 5.17, the flaw allows authenticated attackers with low privileges to read files outside the intended repository boundaries by exploiting symlink following. It was discovered by researcher @DavidCarliez and disclosed on April 15, 2026, with a patch released in Weblate 5.17. The vulnerability carries a CVSS v3.1 base score of 7.7 (High) (GitHub Advisory, Feedly).

Technical details

The root cause is a combination of CWE-22 (Path Traversal), CWE-59 (Improper Link Resolution Before File Access / Link Following), and CWE-200 (Exposure of Sensitive Information). The ZIP download feature in Weblate did not validate whether files being packaged into the ZIP archive were symlinks pointing outside the repository directory, allowing an attacker to place or leverage a symlink within the repository that resolves to an arbitrary file on the server filesystem. The fix (commit 5db3a2a) introduced a check_file_is_valid() method and a get_validated_component_filename() helper that validates symlinks before file access across the download path, gettext add-ons, and component discovery logic. No public proof-of-concept exploit code has been identified (GitHub Advisory, Fix Commit).

Impact

Successful exploitation allows an authenticated attacker with low privileges to read arbitrary files accessible to the Weblate server process, potentially including sensitive configuration files, private keys, database credentials, or other confidential data stored on the host. The scope is marked as "Changed" in the CVSS scoring, indicating that the impact extends beyond the Weblate application itself to the underlying server filesystem. There is no integrity or availability impact, but the confidentiality impact is rated High, reflecting the potential for significant data exposure (GitHub Advisory, Feedly).

Exploitability

There is no evidence of public proof-of-concept exploit code or active in-the-wild exploitation at this time. No threat actor attribution has been reported. The EPSS score is approximately 0.013–0.017%, placing it in the 4th percentile for exploitation likelihood within 30 days. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation requires valid (low-privilege) credentials and network access, but no user interaction (GitHub Advisory, Feedly).

Exploitation steps

  1. Reconnaissance: Identify a Weblate instance running a version prior to 5.17 (e.g., by checking the Weblate version displayed in the UI or via API endpoints).
  2. Authenticate: Log in to the Weblate instance with any valid low-privilege user account.
  3. Place a symlink: Within a repository managed by Weblate (e.g., via a Git commit or direct repository manipulation if write access is available), create a symlink inside the repository directory that points to a sensitive file outside the repository, such as /etc/passwd, /etc/shadow, or application configuration files (e.g., ln -s /etc/passwd po/sensitive.po).
  4. Trigger ZIP download: Use the Weblate ZIP download feature (e.g., via the API endpoint for project/language file downloads with format=zip) to request a ZIP archive that includes the symlinked file.
  5. Extract and read: Download and extract the resulting ZIP archive; the symlinked file's contents will be included, exposing the target file from outside the repository boundary (GitHub Advisory, Fix Commit).

Indicators of compromise

  • Network: Unusual or repeated HTTP GET requests to Weblate API endpoints such as /api/projects/<project>/languages/<lang>/file/?format=zip from authenticated low-privilege accounts, particularly if the downloaded ZIP files are larger than expected or contain unexpected file names.
  • File System: Presence of symlinks within Weblate-managed repository directories (under the configured VCS data directory) that point to locations outside the repository root (e.g., /etc/, /var/, home directories).
  • Logs: Weblate application logs or web server access logs showing repeated ZIP download requests by the same user account, especially targeting components with recently modified file structures; Django/Weblate error logs showing ValidationError exceptions related to symlink checks (post-patch, indicating attempted exploitation against a patched instance).
  • Process: Unexpected file read activity by the Weblate/Django process on sensitive system files (detectable via auditd or similar file access monitoring tools).

Mitigation and workarounds

Upgrade Weblate to version 5.17 or later, which includes the fix that tightens symlink validation across the ZIP download feature, gettext add-ons, and component discovery (GitHub Advisory, Fix Commit). For organizations unable to patch immediately, restrict access to the ZIP download feature via network-level controls or application-level access restrictions, and audit all symlinks within Weblate-managed repository directories to identify and remove any that point outside the repository root. Additionally, ensure the Weblate process runs with the minimum necessary filesystem permissions to limit the scope of any potential file read.

Community reactions

The vulnerability was reported responsibly by researcher @DavidCarliez via GitHub and was published by the Weblate maintainer (nijel) on April 15, 2026. No significant broader media coverage or notable community commentary beyond the standard advisory publication has been identified (GitHub Advisory).

Additional resources


SourceThis report was generated using AI

Related Python vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-61599HIGH8.8
  • Python logoPython
  • djust
NoYesSep 16, 2026
CVE-2026-61596HIGH7.1
  • Python logoPython
  • djust
NoYesSep 16, 2026
CVE-2026-61588MEDIUM6.5
  • Python logoPython
  • djust
NoYesSep 16, 2026
CVE-2026-61589MEDIUM6.3
  • Python logoPython
  • djust
NoYesSep 16, 2026
CVE-2026-61597MEDIUM5.1
  • Python logoPython
  • djust
NoYesSep 16, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management