GitHub Advisoryadvisory · Go

GHSA-xrcr-gmf5-2r8j Gogs: Stored XSS via data URI in issue comments

HIGH Published 2026-03-05 Modified 2026-03-05 Official page ↗
Aliases
CVE-2026-26022
Ecosystem
Go
Packages
gogs.io/gogs
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
Weaknesses
CWE-79
Reviewed
2026-03-05

Affected packages

• Go gogs.io/gogs: < 0.14.2 → fixed in 0.14.2

Description

Summary A Stored Cross-site Scripting (XSS) vulnerability exists in the comment and issue description functionality. The application's HTML sanitizer explicitly allows `data:` URI schemes, enabling authenticated users to inject arbitrary JavaScript execution via malicious links. Details The vulnerability is located in `internal/markup/sanitizer.go`. The application uses the `bluemonday` HTML sanitizer but explicitly weakens the security policy by allowing the `data` URL scheme: ```go // internal/markup/sanitizer.go func NewSanitizer() { sanitizer.init.Do(func() { // ... // Data URLs sanitizer.policy.AllowURLSchemes("data") // ... }) } ``` While the Markdown renderer rewrites relative links (mitigating standard Markdown `link` attacks), Gogs supports Raw HTML input. Raw HTML anchor tags bypass the Markdown parser's link rewriting and are processed directly by the sanitizer. Since the sanitizer is configured to allow `data:` URIs, payloads like `` are rendered as-is. PoC 1. Create a file named `exploit.md` in a repository. 2. Add the following content (Raw HTML): ```html Click me for XSS ``` 3. Commit and push the file. 4. Navigate to the file in the Gogs web interface. 5. Click the "Click me for XSS" link. 6. Result: An alert box with "XSS" appears, executing the JavaScript payload. Impact This is a Stored XSS vulnerability. Any user who views the malicious comment and clicks the link will execute the attacker-supplied JavaScript in their browser context. This allows attackers to: • Steal authentication cookies and session tokens. • Perform arbitrary actions on behalf of the victim (e.g., modifying repositories, adding collaborators). • Redirect users to malicious sites.

Related

Alias · CVE (1)

  • CVE-2026-26022 Gogs is an open source self-hosted Git service. vulnerability

Weakness · CWE (1)

  • CWE-79 Improper Neutralization of Input During Web Page Generation weakness

References