CVE-2026-40890github.com/gomarkdown/markdown 是一个用于解析 Markdown 并渲染为 HTML 的 Go 语言库。该库存在安全漏洞,当使用 SmartypantsRenderer 处理包含未闭合 '<' 字符的畸形输入时,会导致越界内存读取或引发程序 panic。
该漏洞源于 SmartypantsRenderer 在处理特定字符序列时的逻辑缺陷。当解析器遇到 '<' 字符时,它会尝试查找对应的 '>' 字符以完成解析逻辑。由于缺乏对输入缓冲区边界的严格检查,如果在剩余文本中未找到闭合字符,解析器将继续读取超出预期范围的内存地址。这种行为不仅可能导致敏感信息泄露(越界读取),更可能直接触发运行时 panic,导致应用程序崩溃(拒绝服务)。攻击者无需认证即可通过网络向受影响应用发送特制的 Markdown 载荷触发此漏洞。