Skip to content

GHSA-57jg-m997-cx3q CVE-2025-47951 PYSEC-2026-2039

Weblate lacks rate limiting when verifying second factor

Medium PyPI
Severity
4.9 / 10
Medium · CVSS 3.1
Exploit chance (EPSS)
0.27%
Chance of exploitation in the next 30 days. Higher than 18.47% of scored vulnerabilities.
Known exploited
No
Not in CISA's catalog
Weakness
CWE-307 Improper Restriction of Excessive Authentication Attempts
Fix
5.12
Upgrade weblate to this version or later

Description

Impact

The verification of the second factor was not subject to rate limiting. The absence of rate limiting on the second factor endpoint allows an attacker with valid credentials to automate OTP guessing.

Patches

This issue has been addressed in Weblate 5.12 via https://github.com/WeblateOrg/weblate/pull/14918.

References

Thanks to obscuredeer for reporting this issue at HackerOne.

Affected versions

PyPI

PackageVulnerableFixed in
weblate
< 5.12
5.12

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.12

pip
pip install --upgrade "weblate>=5.12"
poetry
poetry add "weblate>=5.12"
uv
uv add "weblate>=5.12"

Severity breakdown

CVSS 3.1 4.9

CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:N

Attack vector
Network
Attack complexity
High
Privileges required
Low
User interaction
None
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

Weakness

CWE-307: Improper Restriction of Excessive Authentication Attempts

The product does not implement sufficient measures to prevent multiple failed authentication attempts within a short time frame.

How to prevent it
  • Architecture and Design: Common protection mechanisms include: Disconnecting the user after a small number of failed attempts Implementing a timeout Locking out a targeted account Requiring a computational task on the user's part.
  • Architecture and Design: Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid [REF-1482]. Consider using libraries with authentication capabilities such as OpenSSL or the ESAPI Authenticator. [REF-45]

References

Timeline

  1. Published
  2. Last updated by the source
  3. Latest EPSS score
AdvisorySeverityWhy 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
Is this in your code?

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