Gogs: Stored XSS in branch and wiki views through author and committer names
### Summary Stored XSS is still possible through unsafe template rendering that mixes user input with `safe()` plus permissive sanitizer handling of data URLs. ### Details `safe()` still turns off escaping: - internal/template/template.go - `func safe(raw string) template.HTML { return template.HTML(raw) }` Branch pages still render committer names using `safe()`: - templates/repo/branches/overview.tmpl - templates/repo/branches/all.tmpl - templates/repo/wiki/view.tmpl The locale still injects a raw second argument: conf/locale/locale_en-US.ini (`branches.updated_by = updated %[1]s by %[2]s`) ### Impact An attacker who can inject commit metadata such as author/committer name can trigger script execution on affected pages, leading to session abuse, CSRF token theft, or unauthorized actions. ### Recommended Fix - Untrusted arguments should be escaped before being used in translations. - Data URLs should be limited or blocked in the sanitizer. ### Remediation A fix is available at https://github.com/gogs/gogs/releases/tag/v0.14.2.
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2026-26195US | medium6.1 | — | ||
Gogs is an open source self-hosted Git service. Prior to version 0.14.2, stored xss is still possible through unsafe template rendering that mixes user input with safe plus permiss… | ||||
references
External citations — patches, advisories, analysis.
- https://github.com/gogs/gogsPACKAGE
- https://github.com/gogs/gogs/commit/ac21150a53bef3a3061f4da787ab193a8d68ecfcWEB
- https://github.com/gogs/gogs/pull/8176WEB
- https://github.com/gogs/gogs/releases/tag/v0.14.2WEB
- https://github.com/gogs/gogs/security/advisories/GHSA-vgvf-m4fw-938jWEB
- https://nvd.nist.gov/vuln/detail/CVE-2026-26195ADVISORY
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan