Gogs: DOM-based XSS via Milestone Name on New Issue Page
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- Active
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- None · None · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-79.
Summary
Gogs is an open source self-hosted Git service. Prior to 0.14.3, in new_form.tmpl, milestone names are rendered with Go's default auto-escaping ({{.Name}}), which converts < to < etc. This prevents direct HTML injection. However, when the browser renders the DOM, the text content of the element contains the decoded original payload. Semantic UI 2.4.2's dropdown component has preserveHTML: true as the default setting. When a user selects a dropdown item, the internal set.text() method calls jQuery's .html() with the item's text content. This re-parses the decoded text as HTML, creating the injected element and triggering the JavaScript event handler. An attacker can store an HTML/JavaScript payload in a milestone name, and when any user opens the New Issue page and interacts with the milestone dropdown, the payload executes in their browser via Semantic UI's preserveHTML behavior. This vulnerability is fixed in 0.14.3.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Gogs | gogs | before 0.14.3 | 0.14.3 | Patch available | CNA |
| — | gogs.io/gogs (Go) | before 0.14.3 | 0.14.3 | Patch available | GHSA-vcm5-gvmp-78mp |
- gogs VendorGogs Affected before 0.14.3 Fixed in 0.14.3 Patch available CNA
- gogs.io/gogs (Go) Vendor— Affected before 0.14.3 Fixed in 0.14.3 Patch available GHSA-vcm5-gvmp-78mp
Remediation
- Fix · CNA gogs (gogs) Fixed in 0.14.3
- Fix · GHSA-vcm5-gvmp-78mp gogs.io/gogs (Go) Fixed in 0.14.3 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-52807
- 2026-10-03 Alias added: GHSA-vcm5-gvmp-78mp
References
More Gogs vulnerabilities
- TI-2025-07419 File overwrite in file update API in Gogs KEVCVSS 4.0HIGH 8.7
- TI-2022-01876 OS Command Injection in gogs/gogs CVSS 3.1CRITICAL 9.8
- TI-2024-36988 Gogs has a Path Traversal in file update API CVSS 4.0HIGH 8.7
- TI-2026-37922 Gogs: Path Traversal in organization name results in RCE through Git hooks CVSS 3.1CRITICAL 10.0
- TI-2022-01744 Remote Command Execution in gogs/gogs CVSS 3.1CRITICAL 10.0
- TI-2025-39562 Gogs's update .git/config file allows remote command execution CVSS 4.0CRITICAL 9.3
Sources
- CVE-2026-52807 · CVE Program
- CVE-2026-52807 · NVD
- FIRST EPSS
- GHSA-vcm5-gvmp-78mp · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences