Where
-Infinity
0

Vendor Risk Score

See how weblate compares to other vendors in security performance

View Risk Score →
Severity
9.8
CVSS:4.0/AV:L/AC:H/AT:P/PR:L/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

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.

1 / 2
Source: GitHub
First published (updated )
Severity
9.1
Input Validation, Path Traversal, Malicious File Upload
AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H

Impact

It was possible to overwrite Git configuration remotely and override some of its behavior.

Resources

Thanks to Jason Marcello for responsible disclosure.

1 / 2
Source: GitHub
First published (updated )
Severity
9.1
AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:L

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.

1 / 2
Source: GitHub
First published (updated )
Severity
8.8
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

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.

1 / 2
Source: GitHub
First published (updated )
Severity
8.8
Command Injection
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Impact Weblate didn't correctly sanitize some arguments passed to Git and Mercurial, which allowed changing their behavior in an unintended way.

Patches

The issues were fixed in the 4.11.1 release. The following commits are addressing it:

35d59f1f040541c358cece0a8d4a63183ca919b8 d83672a3e7415da1490334e2c9431e5da1966842

Workarounds

Instances in which untrusted users cannot create new components are not affected.

References SNYK-PYTHON-WEBLATE-2414088

For more information If you have any questions or comments about this advisory: Open a topic in discussions Email us at care@weblate.org

1 / 2
Source: GitHub
First published (updated )
Severity
8.1
EPSS
0.03%
Path Traversal
AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:H/A:H

Impact Multi-translation download could write to an arbitrary location when instructed by a crafted server.

Patches https://github.com/WeblateOrg/wlc/pull/1128

Workarounds Do not use wlc download with untrusted servers.

References This issue was reported to us by wh1zee via HackerOne.

1 / 2
Source: GitHub
First published (updated )
Severity
8.1
Code Injection, Malicious File Upload
AV:N/AC:H/PR:H/UI:N/S:C/C:H/I:H/A:H

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.

1 / 2
Source: GitHub
First published (updated )
Severity
8.1
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N

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

1 / 2
Source: GitHub
First published (updated )
Severity
7.7
Path Traversal, Infoleak
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N

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.

1 / 2
Source: GitHub
First published (updated )
Severity
7.7
Path Traversal, Infoleak
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N

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.

1 / 2
Source: GitHub
First published (updated )
Severity
7.7
Path Traversal
AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N

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.

First published (updated )
Severity
7.5
EPSS
0.03%
AV:N/AC:H/PR:H/UI:N/S:U/C:L/I:N/A:N

Summary

When creating a new component from an existing component that has a source code repository URL specified in settings, this URL is included in the client's URL parameters during the creation process. If, for example, the source code repository URL contains GitHub credentials, the confidential PAT and username are shown in plaintext and get saved into browser history. Moreover, if the request URL is logged, the credentials are written to the logs in plaintext.

The problematic URL in question is of this form:

https://<HOST>/create/component/vcs/?repo=https%3A%2F%2F<GITHUB USERNAME>%3A<GITHUB PAT>%40github.com%2F<REPOSITORY OWNER>%2F<REPOSITORY NAME>.git&project=1&category=&name=<REDACTED>&slug=<REDACTED>&isglossary=False&vcs=github&sourcelanguage=228&license=&sourcecomponent=1#existing

If using Weblate official Docker image, nginx logs the URL and the token in plaintext:

nginx stdout | 127.0.0.1 - - [04/Apr/2025:10:46:54 +0000] "GET /create/component/vcs/?repo=https%3A%2F%2F<GITHUB USERNAME>%3A<GITHUB PAT>%40github.com%2F<REPOSITORY OWNER>%2F<REPOSITORY NAME>.git&project=1&category=&name=<REDACTED>&slug=<REDACTED>&isglossary=False&vcs=github&sourcelanguage=228&license=&sourcecomponent=1 HTTP/1.1" 200 17625 "<REDACTED>" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:136.0) Gecko/20100101 Firefox/136.0"

Reproduction

1. In a project, create a component which has the Repository push URL setting configured with, for example, a GitHub repository URL including a username and a PAT. 2. In the same project, create another component using the From existing component option and selecting the previous component as the source. Click Continue. 3. Observe that the URL parameter repo includes the secret PAT configured in the original components settings. The URL with the token is potentially saved as plaintext in browser history and server logs. 4. Select a translation file to import and click Continue. 5. Observe again the same repo parameter in the URL.

Impact

- If server logs are compromised, the attacker may be able to gain access to private repositories potentially containing sensitive source code. - Under common browser settings, the URL containing VCS credentials is saved into browser history. Browser extensions, for example, are often able to read the history and thus offer a realistic attack vector to gain access to the credentials.

1 / 2
Source: GitHub
First published (updated )
Severity
7.5
EPSS
0.04%
CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

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.

1 / 2
Source: GitHub
First published (updated )
Severity
6.8
Path Traversal, Infoleak
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:N/A:N

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.

1 / 2
Source: GitHub
First published (updated )
Severity
6.5
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Impact The verification of the second factor had too long a session expiry. The long session expiry could be used to circumvent rate limiting of the second factor.

Patches This issue has been addressed in Weblate 5.13.1 via https://github.com/WeblateOrg/weblate/pull/16002.

References Thanks to Nahid Hasan Limon for reporting this issue responsibly.

1 / 2
Source: GitHub
First published (updated )
Severity
6.5
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

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.

First published (updated )
Severity
6.1
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Weblate is a web based localization tool. An open redirect exists in versions 5.13.2 and below via the redir parameter on .within.website when Weblate is configured with Anubis and REDIRECTDOMAINS is not set. An attacker can craft a URL on the legitimate domain that redirects a victim to an attacker-controlled site. The redirect can also be used to initiate drive-by downloads (redirecting to a URL that serves a malicious file), increasing the risk to end users. This issue is fixed in version 5.13.3.

First published (updated )
Severity
5.9
SSRF
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N

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.

1 / 2
Source: GitHub
First published (updated )
Severity
5.5
EPSS
0.01%
AV:L/AC:H/PR:L/UI:R/S:C/C:L/I:N/A:N

Impact The SSL verification would be skipped for some crafted URLs.

Patches https://github.com/WeblateOrg/wlc/pull/1097

Workarounds Avoid using untrusted wlc configurations, as that might cause insecure connections.

References This issue was reported to us by wh1zee via HackerOne.

1 / 2
Source: GitHub
First published (updated )
Severity
5.5
EPSS
0.01%
Infoleak
AV:L/AC:H/PR:L/UI:R/S:C/C:H/I:N/A:N

Impact Historically, wlc supported providing unscoped API keys in the setting. This practice was discouraged for years, but the code was never removed. This might cause the API key to be used against different server.

Patches https://github.com/WeblateOrg/wlc/pull/1098

Workarounds Remove unscoped key from wlc configuration. Only use URL-scoped keys in the [keys] sections.

References This issue was reported to us by wh1zee via HackerOne.

1 / 2
Source: GitHub
First published (updated )
Severity
5.4
AV:N/AC:H/PR:H/UI:N/S:C/C:L/I:L/A:N

Impact Weblate didn't correctly validate filenames when restoring project backup. It may be possible to gain unauthorized access to files on the server using a crafted ZIP file.

Patches This issue has been addressed in Weblate 5.6.2 via https://github.com/WeblateOrg/weblate/commit/b6a7eace155fa0feaf01b4ac36165a9c5e63bfdd.

Workarounds Do not allow project creation to untrusted users.

References Thanks to Bryan Cahill for bringing this issue to our attention.

For more information If you have any questions or comments about this advisory: Open a topic in discussions Email us at care@weblate.org

1 / 2
Source: GitHub
First published (updated )
Severity
5.4
AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N

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.

1 / 2
Source: GitHub
First published (updated )
Severity
5.4
XSS
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N

Impact Due to improper neutralization, it was possible to perform cross-site scripting via crafted user and language names.

Patches

The issues were fixed in the 4.11 release. The following commits are addressing it:

f6753a1a1c63fade6ad418fbda827c6750ab0bda 9e19a8414337692cc90da2a91c9af5420f2952f1 22d577b1f1e88665a88b4569380148030e0f8389

Workarounds

You can look for crafted user and language names to see if you were affected.

References https://hackerone.com/reports/1486674 https://hackerone.com/reports/1486718 https://hackerone.com/reports/1485226

For more information If you have any questions or comments about this advisory: Open a topic in discussions Email us at care@weblate.org

1 / 2
Source: GitHub
First published (updated )
Severity
5.3
CVSS:4.0/AV:N/AC:H/AT:N/PR:H/UI:N/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Impact

The audit log notifications included the full IP address of the acting user. This could be obtained by third-party servers such as SMTP relays, or spam filters.

Patches

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

References

Thanks to micael1 for reporting this issue at HackerOne.

1 / 2
Source: GitHub
First published (updated )
Severity
5.3
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

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.

1 / 2
Source: GitHub
First published (updated )
Severity
5.3
Input Validation, SSRF
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

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.

1 / 2
Source: GitHub
First published (updated )
Severity
5.3
Infoleak
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

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.

First published (updated )
Severity
5.3
Infoleak
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

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.

First published (updated )
Severity
5.1
XSS
AV:N/AC:H/PR:H/UI:R/S:C/C:L/I:L/A:L

wlc is a Weblate command-line client using Weblate's REST API. Prior to version 2.0.0, the HTML output format in wlc embeds API response data into HTML without escaping, allowing cross-site scripting when the output is rendered in a browser. This issue has been patched in version 2.0.0.

First published (updated )
Severity
5
CSRF, SSRF
AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N

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.

1 / 2
Source: GitHub
First published (updated )

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203