CVE-2026-39376FastFeedParser是一款高性能的RSS、Atom和RDF解析器。在0.5.10版本之前,当parse()函数获取包含HTML meta refresh重定向标签的URL时,会递归调用自身处理重定向。由于缺乏递归深度限制、去重机制和重定向计数上限,攻击者可通过控制服务器返回无限的重定向链,导致Python调用栈耗尽,进而引发进程崩溃。该漏洞可被利用进行拒绝服务攻击,并可与SSRF漏洞结合攻击内网目标。
该漏洞的根本原因是FastFeedParser库在处理HTML响应中的`<meta http-equiv="refresh">`重定向标签时存在设计缺陷。当`parse()`方法解析到此类标签时,会直接递归调用自身来获取重定向后的内容。代码中缺失了关键的防护机制:一是没有设置递归深度的最大阈值,二是没有记录已访问的URL以防止循环引用,三是缺乏重定向次数的计数器。攻击者利用这一逻辑漏洞,搭建一个恶意的Web服务器,该服务器对任何请求都返回包含指向自身的`meta refresh`标签的HTML页面。当FastFeedParser尝试解析该URL时,将陷入无限递归调用,导致Python解释器的调用栈迅速溢出。最终,这会触发`RuntimeError: maximum recursion depth exceeded`,导致解析进程异常终止。此外,这一机制还可被用于绕过某些SSRF防护,通过不断的重定向来探测或攻击内网服务。