Impact
It was possible to accept an invitation opened by a different Weblate user.
Patches
https://github.com/WeblateOrg/weblate/pull/16913
Workarounds
Users should avoid leaving Weblate sessions with an unattended opened invitation.
References
Thanks to Nahid0x for responsibly disclosing this vulnerability to Weblate.
Impact
It was possible to overwrite Git configuration remotely and override some of its behavior.
Resources
Thanks to Jason Marcello for responsible disclosure.
Impact The SSH management console did not validate the passed input while adding the SSH host key, which could lead to an argument injection to ssh-add.
Patches https://github.com/WeblateOrg/weblate/pull/17722
Workarounds Properly limit access to the management console.
References This issue was reported to us by alexb616 via HackerOne.
Impact
The user patching API endpoint didn't properly limit the scope of edits.
Patches https://github.com/WeblateOrg/weblate/pull/18687
References Thanks to @tikket1 and @DavidCarliez for reporting this via GitHub. We received two individual reports for this.
Impact The project backup didn't filter Git and Mercurial configuration files and this could lead to remote code execution under certain circumstances.
Patches https://github.com/WeblateOrg/weblate/pull/18549
Workarounds The project backup is only accessible to users who can create projects. Restricting access to this limits scope of the vulnerability.
References This issue was reported by ggamno via HackerOne.
Impact The API did not properly handle project- and workspace-scoped teams and allowed setting invalid configurations, including granting access to projects the user has no access to.
Patches https://github.com/WeblateOrg/weblate/pull/19970
References
Parts of this issue were independently reported by four reporters: @H3xV0rT3x via GitHub imhego via HackerOne v01demort via HackerOne b4nder via HackerOne
Impact It was possible to read arbitrary files from the server file system using crafted symbolic links in the repository.
Resources
Thanks to Jason Marcello for responsible disclosure.
Impact
The ZIP download feature didn't verify downloaded file and it could follow symlinks outside the repository.
Patches
https://github.com/WeblateOrg/weblate/pull/18683
References
Thanks to @DavidCarliez for reporting this vulnerability via GitHub.
Weblate is a web-based continuous localization platform used to manage software translations. In versions prior to 2026.7, a project administrator can read files outside their repository through the App store metadata download feature, which resolves attacker-influenced paths without adequately confining them to the repository. This is an incomplete fix for CVE-2026-34242, whose original patch failed to fully prevent the path traversal, allowing the arbitrary file read to persist. A user with project-administrator privileges can therefore disclose the contents of files on the Weblate host that lie outside the project's repository. This issue is fixed in version 2026.7.
Impact The screenshot images were served directly by the HTTP server without proper access control. This could allow an unauthenticated user to access screenshots after guessing their filename.
Patches https://github.com/WeblateOrg/weblate/pull/17516
References
Thanks to Lukas May and Michael Leu for reporting this.
Impact The translation memory API exposed unintended endpoints, which in turn didn't do proper access control.
Patches https://github.com/WeblateOrg/weblate/pull/18516
Workarounds The CDN add-on is not enabled by default.
References Thanks to @spbavarva for reporting this responsibly via GitHub.
Weblate is a web-based continuous localization platform used to manage software translations. In versions prior to 2026.7, a user with the built-in "Edit source" role can store a malicious regular expression in a source string's flags that is executed without any timeout, allowing them to stall requests and deny service. Regular expressions supplied through the regex: quality check and regex placeholders are compiled during validation but later run against translation content in RegexCheck and PlaceholderCheck with no time limit, so a catastrophic-backtracking pattern like ^(a|aa)+$ can consume CPU indefinitely. Because Weblate re-runs these checks for every linked target unit in the same request when a source unit's flags change, a single edit can trigger sustained CPU-bound denial of service. This issue is fixed in version 2026.7.
Impact
Weblate's VCSRESTRICTPRIVATE did not properly account for some transitional IPv6 ranges, multicast addresses, or some semi-private IPv4 ranges, which allowed some addresses to bypass private range restrictions.
Patches
https://github.com/WeblateOrg/weblate/pull/19768
Resources
The issue was reported by @tonghuaroot via GitHub, and the same user also provided the initial patch.
Impact When a user changes their password, browser sessions are correctly invalidated via cyclesessionkeys(), but DRF API tokens (wlu prefix) stored in authtokentoken are not revoked.
Patches https://github.com/WeblateOrg/weblate/pull/19057
Resources Weblate thanks Sang Yu Jeon for reporting this via GitHub.
Impact
It was possible to trigger repository updates for many repositories via a crafted webhook payload.
Patches
https://github.com/WeblateOrg/weblate/pull/17221
Workarounds
Disabling webhooks completely using ENABLEHOOKS avoids this vulnerability.
References
Thanks to Hector Ruiz Ruiz & NaxusAI for responsibly disclosing this vulnerability to us.
Impact An authenticated user with project.add permission (default on hosted Weblate SaaS and for any user holding an active billing/trial plan) can import a crafted project backup ZIP whose components/<name>.json contains an attacker-chosen repo URL pointing at a private address (e.g. http://127.0.0.1:9999/) or using a non-allow-listed scheme (e.g. file://, git://). Weblate persists the component via Component.objects.bulkcreate([component])[0], which bypasses Django's fullclean() and therefore never runs the validaterepourl validator. The URL is subsequently written verbatim into .git/config by configurerepo(pull=False).
Patches https://github.com/WeblateOrg/weblate/pull/19061 https://github.com/WeblateOrg/weblate/pull/19062
Workarounds Limiting who can create projects limits the scope.
Resources Weblate thanks @fg0x0 for reporting this vulnerability via GitHub.
Weblate is a web-based continuous localization platform used to manage software translations. In versions prior to 2026.8, Weblate's object-scoped RSS feeds do not apply the permission checks used elsewhere, allowing unauthorized users to read change-history metadata from private projects and restricted components. On installations that permit anonymous access, this metadata can be retrieved without any authentication. The exposed information can include project and component identities, contributor usernames and full names, action types, timestamps, and translation or unit links, though translated-string content is not included in the feed. Installations using private projects or restricted components are affected. This issue is fixed in version 2026.8.
The password reset form in Weblate before 2.10.1 provides different error messages depending on whether the email address is associated with an account, which allows remote attackers to enumerate user accounts via a series of requests.
Impact The Create Component functionality in Weblate allows authorized users to add new translation components by specifying both a version control system and a source code repository URL to pull from. However, the repository URL field is not validated or sanitized, allowing an attacker to supply arbitrary protocols, hostnames, and IP addresses, including localhost, internal network addresses, and local filenames.
When the Mercurial version control system is selected, Weblate exposes the full server-side HTTP response for the provided URL. This effectively creates a server-side request forgery (SSRF) primitive that can probe internal services and return their contents. In addition to accessing internal HTTP endpoints, the behavior also enables local file enumeration by attempting file:// requests. While file contents may not always be returned, the application’s error messages clearly differentiate between files that exist and files that do not, revealing information about the server’s filesystem layout.
In cloud environments, this behavior is particularly dangerous, as internal-only endpoints such as cloud metadata services may be accessible, potentially leading to credential disclosure and full environment compromise.
Patches
This has been addressed in the Weblate 5.15 release.
https://github.com/WeblateOrg/weblate/pull/17103 https://github.com/WeblateOrg/weblate/pull/17102
Workarounds
Removing Mercurial from VCSBACKENDS avoids this vulnerability, as the Git backend is not affected. The Git backend was already configured to block the file protocol and does not expose the HTTP response content in the error message.
References Thanks to Jason Marcello for responsible disclosure.
Impact The ALLOWEDASSETDOMAINS setting applied only to the first issued requests and didn't restrict possible redirects.
Patches https://github.com/WeblateOrg/weblate/pull/18550
References This issue was reported by @spbavarva via GitHub.
Impact 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.
Patches
https://github.com/WeblateOrg/weblate/pull/18684 The solution then has been cleaned up in followup patches
Workarounds Limiting available machinery services via WEBLATEMACHINERY setting can avoid this.
References
Thanks to @DavidCarliez for disclosing this via GitHub private vulnerability reporting.
Impact Weblate repository-boundary validation relies on string prefix checks on resolved absolute paths. In multiple code paths, the check uses startswith against the repository root path. This is not path-segment aware and can be bypassed when the external path shares the same string prefix as the repository path (for example, repo and repooutside).
Patches https://github.com/WeblateOrg/weblate/pull/18847
References Thanks to m9nx4u for reporting this issue via HackerOne.
Weblate is a web-based continuous localization platform used to manage software translations. In versions prior to 2026.7, a team can require its members to configure two-factor authentication before receiving the team's permissions, but this requirement is not enforced for site-wide global permissions. As a result, a user who belongs to a team that enforces 2FA and grants a global permission still receives that global permission even without 2FA configured, while the same requirement is correctly applied to project-, component-, and workspace-scoped permissions. Such a user can act on the granted global permission, including reaching the site management interface at /manage/. This issue is fixed in version 2026.7.
Impact
It was possible to retrieve user notification settings or list all users via API.
Patches
https://github.com/WeblateOrg/weblate/pull/17256
References
Thanks to Hector Ruiz Ruiz & NaxusAI for responsibly disclosing this vulnerability to Weblate.
Impact
Users were able to obtain add-on configuration via API.
Patches
https://github.com/WeblateOrg/weblate/pull/18107 https://github.com/WeblateOrg/weblate/pull/18164
References
Weblate thanks @lighthousekeeper1212 for responsible disclosure.
Impact The translation memory API exposed unintended endpoints, which in turn didn't do proper access control.
Patches https://github.com/WeblateOrg/weblate/pull/18513
Workarounds Blocking access to /api/memory/ in the HTTP server removes access to this feature.
References This issue was reported by ggamno via HackerOne.
Impact
The screenshots, tasks, and component link API allowed for the enumeration of translations in a project inaccessible to the user.
Patches https://github.com/WeblateOrg/weblate/pull/19258
Acknowledgement Weblate thanks Luay for reporting this vulnerability according to the organization's security issues guideline.
Impact The Markdown renderer used in user comments and other user-provided content didn't properly sanitize some attributes.
Patches https://github.com/WeblateOrg/weblate/pull/19259
Workarounds Even though the attacker might be able to inject code into the HTML, the Weblate's strict CSP should mitigate the risks.
Acknowlegement Michal Čihař has identified and fixed this vulnerability.
Weblate is a web-based continuous localization platform used to manage software translations. In versions prior to 2026.7, an authenticated user with access to a project can retrieve the change history of restricted components in that project through nested API change endpoints, even without permission to view those components directly. The nested endpoints do not apply the component-level access checks enforced on the direct component views, so the requester can enumerate changes for components that should be hidden from them. The exposed data can include the restricted component's identity, translation and unit links, and change payload fields such as source or translated string content in the target, old, and details values. This issue is fixed in version 2026.7.
Impact The several endpoints could leak object existence information to users who had no access to it by HTTP status code 403 instead of 404.
Patches https://github.com/WeblateOrg/weblate/pull/19971
References Thanks to Yaohui Wang for reporting this via GitHub.