GHSA-pj86-258h-qrvf CVE-2025-67492 PYSEC-2025-232
Weblate's over‑permissive webhook endpoint enables mass repository updates and component enumeration
- Severity
- 5.3 / 10
- Medium · CVSS 3.1
- Exploit chance (EPSS)
- 0.26%
- Chance of exploitation in the next 30 days. Higher than 17.14% of scored vulnerabilities.
- Known exploited
- No
- Not in CISA's catalog
- Weakness
- CWE-1286 Improper Validation of Syntactic Correctness of Input
- Fix
5.15- Upgrade weblate to this version or later
Description
Impact
It was possible to trigger repository updates for many repositories via a crafted webhook payload.
Patches
Workarounds
Disabling webhooks completely using ENABLE_HOOKS avoids this vulnerability.
References
Thanks to Hector Ruiz Ruiz & NaxusAI for responsibly disclosing this vulnerability to us.
Affected versions
PyPI
| Package | Vulnerable | Fixed in |
|---|---|---|
| weblate | < 5.15 |
5.15 |
How to fix
Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.
weblate PyPI → 5.15
- pip
pip install --upgrade "weblate>=5.15"- poetry
poetry add "weblate>=5.15"- uv
uv add "weblate>=5.15"
Severity breakdown
CVSS 3.1 5.3
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
- Attack vector
- Network
- Attack complexity
- Low
- Privileges required
- None
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- Low
- Integrity
- None
- Availability
- None
Weakness
CWE-1286: Improper Validation of Syntactic Correctness of Input
The product receives input that is expected to be well-formed - i.e., to comply with a certain syntax - but it does not validate or incorrectly validates that the input complies with the syntax.
How to prevent it
- Implementation: Assume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does. When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, "boat" may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as "red" or "blue." Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code's environment changes. This can give attackers enough room to bypass the intended validation. However, denylists can be useful for detecting potential attacks or determining which inputs are so malformed that they should be rejected outright.
References
Advisories
Packages
Other links
Timeline
- Published
- Last updated by the source
- Latest EPSS score
Related advisories
| Advisory | Severity | Why it's related |
|---|---|---|
| GHSA-2q2q-jr9g-v9rf Weblate has IDOR in GroupViewSet that allows authenticated project manager to gain unauthorized read access to any private project | High | Also affects weblate |
| GHSA-2p9g-x3cv-5hh4 Private Weblate projects vulnerable to observable object existence disclosure via globally scoped object lookups | Medium | Also affects weblate |
| GHSA-vmfc-9982-2m45 Weblate SSRF: outbound URL guard misses some private ranges | Medium | Also affects weblate |
| GHSA-6wxc-8mgq-w26m Weblate: Stored HTML injection in editor search preview | Medium | Also affects weblate |
| GHSA-5cmv-3rc4-7279 Weblate vulnerable to XSS via crafted Markdown | Medium | Also affects weblate |
| GHSA-gcg5-86jr-f7jg Weblate Vulnerable to Private Translation Enumeration via Screenshot API | Medium | Also affects weblate |
| GHSA-cwcx-382v-8m9g Weblate Vulnerable to Authenticated SSRF via Project Backup Import bypassing validate_repo_url | High | Also affects weblate |
| GHSA-6j8j-4qp3-36p2 Weblate Doesn't Invalidate API Token on Password Change | Medium | Also affects weblate |
MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.
Check your repos with MergeHarbor