Skip to main content

wlc (Weblate CLI) CVE-2026-42150

| EUVDEUVD-2026-28501 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-05-08 GitHub_M
4.8
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Compromise Weblate instance or intercept API
  2. Delivery
    Inject XSS payload into API response field
  3. Exploit
    User runs wlc with --format=html flag
  4. Install
    HTML file generated with unescaped payloads
  5. C2
    User opens HTML in browser
  6. Execute
    JavaScript executes with browser privileges
  7. Impact
    Attacker steals session/data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The HTML output format must be explicitly requested by the user (--format=html flag), which is non-default behavior-most users rely on text or JSON output. The attacker must control or inject malicious data into the Weblate API response, typically via: (1) direct compromise of the Weblate instance itself, (2) man-in-the-middle attack if API communications are not HTTPS-enforced, or (3) supply-chain compromise of a data source indexed by Weblate. High API privileges (PR:H per CVSS) are required, meaning the attacker needs valid API credentials or the ability to modify Weblate's database. The target user must actively render the generated HTML file in a web browser rather than inspect it as raw text. These cumulative constraints-opt-in feature, high privileges required, MITM or instance compromise prerequisite, plus user action-make spontaneous exploitation unlikely despite the network vector.

Impact

Despite the CVSS score of 5.1 (medium), real-world exploitation risk is significantly constrained by multiple limiting factors. The CVSS vector reveals AV:N (network) but AC:H (high complexity), PR:H (requires high privileges - API credentials), and UI:R (requires user interaction - browser rendering of output file). This contradicts a straightforward remote attack scenario. The vulnerability is restricted to opt-in HTML output format and requires an attacker to control API response data (via compromised Weblate instance, MITM, or injection into a data source queried by the Weblate API). An additional barrier: the attacker needs the target user to actively render the HTML output in a browser rather than view it as plain text. No KEV status, no POC in public repositories, and no evidence of active exploitation reported. This is a stored/reflected XSS in a niche tool with low visibility and high exploitation friction-a classic case of high CVSS but low real-world risk. Organizations using wlc should prioritize patching based on exposure (who has API credentials?) rather than CVSS alone.

Exploit ScenarioDerived

An attacker with a compromised or legitimate Weblate API token (PR:H) crafts a specially malicious API response containing embedded JavaScript payloads in string fields (e.g., translation metadata, user names, comments). A wlc user retrieves data using '--format=html', which generates an HTML table or detail page embedding the unescaped payloads. The user then opens this HTML file in a browser (UI:R), triggering execution of the attacker's JavaScript-potentially harvesting session cookies, exfiltrating locally cached data, or redirecting to a phishing site.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 08, 2026

Cross-site scripting in wlc command-line client versions prior to 2.0.0 allows authenticated users with high privileges to inject malicious HTML/JavaScript into API responses, which are then embedded unescaped in HTML output. When the HTML output is rendered in a browser, this enables XSS attacks. The vulnerability requires explicit use of the HTML output format (non-default), user interaction to open/view the HTML file, and elevated API credentials, limiting real-world risk despite the network vector.

RemediationAI

Upgrade wlc to version 2.0.0 or later, available via pip: 'pip install --upgrade wlc>=2.0.0'. The vendor-released patch introduces html.escape() in the format_html_value() method to sanitize all HTML output. For environments unable to upgrade immediately, disable or restrict HTML output format usage (the vulnerable code path is opt-in via command-line flag '--format=html'), and ensure API credentials are protected since the vulnerability requires high privileges (API token/authentication). Additionally, validate that any HTML files generated by wlc are not served over HTTP without Content-Security-Policy headers, and educate users to view wlc output as plain text rather than rendering HTML in browsers when possible. Full advisory and patch: https://github.com/WeblateOrg/wlc/security/advisories/GHSA-gx2m-mcc2-r4p3, PR https://github.com/WeblateOrg/wlc/pull/1327.

Affected VersionsENISA

wlc < 2.0.0

Affected Packages

pypi wlc fix: 2.0.0

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

wlc is a Python command-line client for Weblate's REST API that formats API responses in multiple output formats including HTML. The vulnerability exists in the print_html() method in wlc/main.py, which directly interpolates API response data (keys and values) into HTML table markup using Python f-strings without HTML entity escaping. The root cause is improper input validation/output encoding (CWE-79: Improper Neutralization of Input During Web Page Generation). The fix adds an html.escape() wrapper via a new format_html_value() classmethod that safely encodes all user-controllable data before HTML rendering, following the OWASP principle of output encoding. Affected versions are distributed via pip package wlc with versions < 2.0.0 vulnerable.

Know when Wlc 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

NVD PRIMARY 4.8 MEDIUM
AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
High
User Interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

3
CVSS changed
Oct 26, 2026 - 20:22 NVD
5.1 (MEDIUM) 4.8 (MEDIUM)
Patch available
May 08, 2026 - 05:01 EUVD
CVE Published
May 08, 2026 - 03:23 nvd
MEDIUM 5.1

DescriptionNVD

wlc is a Weblate command-line client using Weblate's REST API. Prior to version 2.0.0, the HTML output format in wlc embeds API response data into HTML without escaping, allowing cross-site scripting when the output is rendered in a browser. This issue has been patched in version 2.0.0.

Threat Intelligence Overview

EPSS Score
0.0%
Top 91% exploitable
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy