CVE-2026-33347league/commonmark 是一个流行的 PHP Markdown 解析器。在版本 2.3.0 至 2.8.2 之前,其 Embed 扩展中的 DomainFilteringAdapter 存在严重的允许列表绕过漏洞。由于域名匹配的正则表达式缺少主机名边界断言,攻击者能够构造特定的恶意域名(例如 youtube.com.evil)来通过校验。该漏洞允许攻击者在受信任的上下文中注入不受信任的 URL,可能导致跨站脚本攻击或其他安全风险。
该漏洞位于 `league/commonmark` 库的 `Embed` 扩展组件内,具体涉及 `DomainFilteringAdapter` 类。其核心原因是用于验证域名的正则表达式存在逻辑缺陷,未严格划定主机名的起始和结束边界。这意味着当系统试图验证是否允许嵌入某个域名时,攻击者可以通过后缀拼接的方式绕过检测。例如,若允许列表中包含 `example.com`,攻击者提交的 `example.com.attacker.com` 会被正则错误匹配为合法域名,因为字符串中包含了 `example.com`。一旦攻击者成功注入恶意 URL,当受害者解析并渲染该 Markdown 内容时,浏览器可能会加载并执行来自恶意域名的脚本,从而引发跨站脚本攻击(XSS),窃取用户凭证或执行恶意操作。