Out-of-bounds read in gomarkdown IsSafeURL causes panics on short URLs
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Partial Red Hat: 2 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-125 and the CVSS impact.
Summary
The github.com/gomarkdown/markdown Go package before 0.0.0-20260724235538-61af6e1e6971 has an out-of-bounds read (CWE-125) in parser.IsSafeURL, which slices a URL before checking its length. A remote attacker can trigger a panic by supplying untrusted Markdown with a short link destination while html.Safelink is enabled, or by passing a short URL directly to the function. An uncaught panic can terminate the calling process, causing denial of service.
Written with Claude Haiku 5.5 from the sources below · 2026-10-31
Description from the CNA
The package github.com/gomarkdown/markdown is a Go library for parsing Markdown text and rendering as HTML. Prior to 0.0.0-20260724235538-61af6e1e6971, parser.IsSafeURL in parser/parser.go slices url[:nPath] before the len(url) >= nPath guard. A short destination causes a slice-bounds panic when the loop reaches a relative-path prefix for which len(url) < nPath and cap(url) < nPath. The one-byte destination / is an explicit non-panic counterexample because it matches the first valid path and returns before a longer prefix is sliced. Demonstrated panic cases include empty, ., and .. destinations under those conditions. The panic is reachable when markdown.ToHTML renders untrusted Markdown with html.Safelink enabled, including an empty link destination, and is also reachable by callers that pass a short attacker-controlled URL directly to the exported parser.IsSafeURL function. An uncaught panic can terminate the calling process and cause denial of service. This issue is fixed in 0.0.0-20260724235538-61af6e1e6971.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- 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 |
|---|---|---|---|---|---|
| gomarkdown | markdown | before 0.0.0-20260724235538-61af6e1e6971 | 0.0.0-20260724235538-61af6e1e6971 | Patch available | CNA |
| — | github.com/gomarkdown/markdown (Go) | before 0.0.0-20260724235538-61af6e1e6971 | 0.0.0-20260724235538-61af6e1e6971 | Patch available | GHSA-cv23-7vc5-jfh7 |
- markdown Vendorgomarkdown Affected before 0.0.0-20260724235538-61af6e1e6971 Fixed in 0.0.0-20260724235538-61af6e1e6971 Patch available CNA
- github.com/gomarkdown/markdown (Go) Vendor— Affected before 0.0.0-20260724235538-61af6e1e6971 Fixed in 0.0.0-20260724235538-61af6e1e6971 Patch available GHSA-cv23-7vc5-jfh7
Remediation
Update github.com/gomarkdown/markdown to 0.0.0-20260724235538-61af6e1e6971 or later. Red Hat lists Ansible Automation Orchestrator 2026 as affected with plan none_available and Multicluster Global Hub as affected with no fix planned.
Written with Claude Haiku 5.5 from the sources below · 2026-10-31
- Fix · CNA markdown (gomarkdown) Fixed in 0.0.0-20260724235538-61af6e1e6971
- Fix · GHSA-cv23-7vc5-jfh7 github.com/gomarkdown/markdown (Go) Fixed in 0.0.0-20260724235538-61af6e1e6971 Advisory →
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Ansible Automation Orchestrator 2026 | Affected | No fix yet |
| Multicluster Global Hub | Affected | No fix planned: Will not fix |
Not affected: 3 products
- Red Hat Advanced Cluster Management for Kubernetes 2
- Red Hat OpenShift Container Platform 4
- Red Hat OpenShift Container Platform 5
Timeline
- 2026-10-16 Threatist record created from CVE-2026-102941
- 2026-10-16 Alias added: GHSA-cv23-7vc5-jfh7
- 2026-10-18 Priority changed: MEDIUM → LOW
- 2026-10-20 Affected versions changed · Red Hat
- 2026-10-20 CVSS score added · Red Hat
- 2026-10-21 Affected versions changed · Red Hat
- 2026-10-26 CISA SSVC decision points changed
- 2026-10-31 Affected versions changed · Red Hat
References
More gomarkdown vulnerabilities
- TI-2026-29546 github.com/gomarkdown/markdown: Out-of-bounds Read in SmartypantsRenderer CVSS 3.1HIGH 7.5
- TI-2023-22912 github.com/gomarkdown/markdown Out-of-bounds Read while parsing citations CVSS 3.1HIGH 7.5
Sources
- CVE-2026-102941 · CVE Program
- CVE-2026-102941 · NVD
- FIRST EPSS
- GHSA-cv23-7vc5-jfh7 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-102941 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences