7.5

CVE-2026-102941: gomarkdown/markdown IsSafeURL panics on short URLs

Deferred
AliasesGHSA-cv23-7vc5-jfh7CGA-5427-qm3j-h539CGA-fx9m-85w5-c9mv
Published 16-10-2026Last modified 26-10-2026

Vulnerability summary

CVE-2026-102941 is a high (CVSS 7.5) Out-of-bounds Read vulnerability in gomarkdown markdown. EPSS estimates a 0.28% chance of exploitation in the next 30 days, higher than 20.4% of scored vulnerabilities.

Priority
Prioritisesevere

Severe, CVSS 7.5 (CVE.org); no exploitation reported by the 5 checked sources; EPSS 0% (FIRST, 03-11-2026)

Source freshness unavailable

How is this decided?
CVSS score
7.5/10
010
High · v3.1 (CVE.org)
EPSS score
0.28%
0%100%
Low · Change unavailable
KEVNot listedNot listed by any tracked catalog.
RansomwareNot flaggedNo ransomware use recorded.
Public exploits0No public exploits recorded

Timeline

  1. 16-10-2026
    PublishedVulnerability first disclosed.
  2. 26-10-2026
    Last modifiedVulnerability information updated.

Description

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.

CVSS metrics

7 scores · 7 sources · 1 version

EPSS trend

Probability

0.28%

Chance of exploitation in the next 30 days

Percentile

20%

Versus all other CVEs

30-day change

Change unavailable

Change unavailable

17-10-202603-11-2026

Known exploited

Compare KEV catalogs
CISA KEV

Not in the CISA KEV catalog.

ENISA CNW

Not in the ENISA CNW catalog.

CIRCL

Not in the CIRCL catalog.

Public exploits

0 found

No public exploits indexed.

Weaknesses

CWE · root cause

Affected systems

Version check

Known conditions: network-reachable, no authentication, no user interaction (CVSS vector). Other conditions: not stated in public data.

Chainguard16 products
  • coder-2.29All versions (No fix recorded) | < 2.29.21-r3
  • coder-2.32All versions (No fix recorded) | < 2.32.10-r16
  • coder-2.33All versions (No fix recorded) | < 2.33.11-r18
  • coder-2.34All versions (No fix recorded) | < 2.34.12-r5
  • coder-fips-2.29All versions (No fix recorded) | < 2.29.21-r5
Wolfi5 products
  • fqAll versions (No fix recorded) | < 0.18.0-r3
  • kube-metrics-adapterAll versions (No fix recorded) | < 0.2.9-r26
  • snyk-cliAll versions (No fix recorded) | < 1.1308.1-r2
  • temporalAll versions (No fix recorded) | < 1.9.1-r4
  • temporal-ui-serverAll versions (No fix recorded) | < 2.56.0-r2
Debian1 product
  • golang-github-gomarkdown-markdownAll versions (No fix recorded) | < 0.0~git20260725.8435af3-1
Github.com/gomarkdown1 product
  • markdown< 0.0.0-20260724235538-61af6e1e6971
Gomarkdown1 product
  • markdown< 0.0.0-20260724235538-61af6e1e6971
Ubuntu1 product
  • golang-github-gomarkdown-markdownAll versions (No fix recorded)

6 vendors · 25 products

References

6 links