CVE-2022-23915
📋 TL;DR
CVE-2022-23915 is a remote code execution vulnerability in Weblate, a web-based translation management system. Authenticated users can inject arguments when using git or mercurial repositories, allowing them to execute arbitrary commands on the server. This affects all Weblate installations before version 4.11.1.
💻 Affected Systems
- Weblate
📦 What is this software?
Weblate by Weblate
⚠️ Risk & Real-World Impact
Worst Case
Full system compromise where an attacker gains complete control over the Weblate server, potentially leading to data theft, lateral movement, or deployment of persistent malware.
Likely Case
Authenticated attackers (including low-privilege users) execute arbitrary commands to steal sensitive data, modify translations, or disrupt service availability.
If Mitigated
With proper network segmentation and least privilege access, impact is limited to the Weblate application server, preventing lateral movement to other systems.
🎯 Exploit Status
Exploitation requires authenticated access. The vulnerability is in argument parsing for git/mercurial commands, making exploitation straightforward for attackers with valid credentials.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 4.11.1
Vendor Advisory: https://github.com/WeblateOrg/weblate/releases/tag/weblate-4.11.1
Restart Required: Yes
Instructions:
1. Backup your Weblate data and configuration. 2. Update Weblate to version 4.11.1 or later using pip: 'pip install --upgrade weblate==4.11.1'. 3. Restart the Weblate service. 4. Verify the update was successful.
🔧 Temporary Workarounds
Disable Git/Mercurial Integration
allTemporarily disable git and mercurial repository functionality to prevent exploitation
Modify Weblate configuration to remove VCS repository settings
Restrict User Permissions
allLimit authenticated users' ability to modify repository settings
Review and tighten user role permissions in Weblate admin interface
🧯 If You Can't Patch
- Implement strict network segmentation to isolate Weblate servers from critical infrastructure
- Enforce multi-factor authentication and review all user accounts for suspicious activity
🔍 How to Verify
Check if Vulnerable:
Check Weblate version: if version is less than 4.11.1 and git/mercurial is configured, the system is vulnerable.
Check Version:
weblate --version
Verify Fix Applied:
Confirm Weblate version is 4.11.1 or higher and test git/mercurial functionality works without allowing command injection.
📡 Detection & Monitoring
Log Indicators:
- Unusual git or mercurial command patterns in application logs
- Multiple failed authentication attempts followed by repository modifications
Network Indicators:
- Unexpected outbound connections from Weblate server
- Suspicious command and control traffic patterns
SIEM Query:
source="weblate.log" AND ("git" OR "hg") AND command="*;*" OR command="*|*" OR command="*`*"
🔗 References
- https://github.com/WeblateOrg/weblate/pull/7337
- https://github.com/WeblateOrg/weblate/pull/7338
- https://github.com/WeblateOrg/weblate/releases/tag/weblate-4.11.1
- https://snyk.io/vuln/SNYK-PYTHON-WEBLATE-2414088
- https://github.com/WeblateOrg/weblate/pull/7337
- https://github.com/WeblateOrg/weblate/pull/7338
- https://github.com/WeblateOrg/weblate/releases/tag/weblate-4.11.1
- https://snyk.io/vuln/SNYK-PYTHON-WEBLATE-2414088