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.
Limiting available machinery services via WEBLATE_MACHINERY setting can avoid this.
Thanks to @DavidCarliez for disclosing this via GitHub private vulnerability reporting.
{
"cwe_ids": [
"CWE-200",
"CWE-918"
],
"github_reviewed": true,
"github_reviewed_at": "2026-04-16T20:43:38Z",
"nvd_published_at": "2026-04-15T19:16:35Z",
"severity": "MODERATE"
}