CVE-2025-68475Fedify是一个用于构建基于ActivityPub的去中心化服务器应用的TypeScript库。该库在1.6.13、1.7.14、1.8.15和1.9.2之前的版本中存在一个正则表达式拒绝服务(ReDoS)漏洞。漏洞位于文档加载器(Document Loader)组件中,具体在HTML解析正则表达式处。由于正则表达式包含嵌套量词(nested quantifiers),当处理恶意构造的HTML响应时,会导致灾难性回溯(catastrophic backtracking)。攻击者可以通过向Fedify实例发送特制的HTML内容来触发此漏洞,消耗大量CPU资源,最终导致服务不可用。该漏洞无需认证即可利用,攻击向量为网络层面,CVSS评分达到7.5分,属于高危漏洞。
漏洞根源在于packages/fedify/src/runtime/docloader.ts文件第259行的HTML解析正则表达式。该正则表达式使用了嵌套量词模式,当输入字符串具有特定结构时(如重复的字符序列),正则引擎需要进行指数级的回溯操作来尝试所有可能的匹配路径。例如,包含大量重复字符或特定嵌套结构的HTML内容会触发最坏情况下的正则匹配性能。攻击者可以构造一个看似正常的HTTP响应,但其中包含精心设计的HTML片段,使得正则表达式匹配过程耗时数秒甚至更长时间。通过反复发送此类请求,攻击者可以耗尽服务器资源,导致正常用户无法访问服务。修复方案通常包括重写正则表达式以消除嵌套量词,或使用原子分组、 possessive quantifiers等技术来防止回溯。