Skip to content

VCS credentials included in URL parameters are potentially logged and saved into browser history as plaintext

Low severity GitHub Reviewed Published Apr 15, 2025 in WeblateOrg/weblate • Updated Apr 15, 2025

Package

pip weblate (pip)

Affected versions

< 5.11

Patched versions

5.11

Description

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>&is_glossary=False&vcs=github&source_language=228&license=&source_component=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>&is_glossary=False&vcs=github&source_language=228&license=&source_component=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.

References

@nijel nijel published to WeblateOrg/weblate Apr 15, 2025
Published to the GitHub Advisory Database Apr 15, 2025
Reviewed Apr 15, 2025
Published by the National Vulnerability Database Apr 15, 2025
Last updated Apr 15, 2025

Severity

Low

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

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

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:L/I:N/A:N

EPSS score

Exploit Prediction Scoring System (EPSS)

This score estimates the probability of this vulnerability being exploited within the next 30 days. Data provided by FIRST.
(8th percentile)

Weaknesses

CVE ID

CVE-2025-32021

GHSA ID

GHSA-m67m-3p5g-cw9j

Source code

Credits

This advisory has been edited. See History.
See something to contribute? Suggest improvements for this vulnerability.