CVE-2026-40565FreeScout是一款免费的自托管帮助台和共享邮箱软件。在1.8.213版本之前,该软件存在一个安全漏洞,源于其`linkify()`函数在处理邮件正文时的不当实现。该函数在将纯文本URL转换为HTML锚点标签时,未能正确转义URL中的双引号字符。由于前置的`HTMLPurifier`保留了文本节点中的字面量引号,导致攻击者可利用此特性在`href`属性中注入任意HTML属性,进而实施跨站脚本攻击(XSS)。
该漏洞的核心在于FreeScout处理邮件正文时的逻辑缺陷,具体涉及`app/Misc/Helper.php`文件中的`linkify()`函数与`HTMLPurifier`组件的交互。在处理流程中,`HTMLPurifier`首先通过`getCleanBody()`函数清理邮件内容,虽然它能有效过滤大部分恶意HTML,但它会保留文本节点中的字面量双引号(")字符。随后,`linkify()`函数被调用于将纯文本URL转换为HTML超级链接(即`<a>`标签)。问题在于,`linkify()`在构建`href="..."`属性时,未对URL字符串中可能存在的双引号进行转义处理。因此,当攻击者发送包含精心构造的URL(如`http://evil.com" onmouseover="alert(1)`)的邮件时,双引号会提前闭合`href`属性,导致后续的字符被解析为标签的属性。这使得攻击者能够注入任意HTML属性或JavaScript事件处理器,从而在受害者(通常是管理员或客服人员)查看邮件时触发跨站脚本攻击。由于该邮件存储在数据库中,这属于存储型XSS,危害性较高,可能导致会话劫持或进一步的服务器渗透。