GitHub Advisoryadvisory · Go
GHSA-xrcr-gmf5-2r8j Gogs: Stored XSS via data URI in issue comments
HIGH
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
- https://github.com/gogs/gogs/security/advisories/GHSA-xrcr-gmf5-2r8j web
- https://nvd.nist.gov/vuln/detail/CVE-2026-26022 advisory
- https://github.com/gogs/gogs/pull/8174 web
- https://github.com/gogs/gogs/commit/441c64d7bd8893b2f4e48660a8be3a7472e14291 web
- https://github.com/gogs/gogs package
- https://github.com/gogs/gogs/releases/tag/v0.14.2 web