“Squidbleed 是新的 Heartbleed 吗?”流行代理中的漏洞暴露了近三十年的用户数据。

1997 年的 bug 是如何存活到 2026 年的?

来源:安全实验室新闻频道

“Squidbleed 是新的 Heartbleed 吗?”流行代理中的漏洞暴露了近三十年的用户数据。

支持 FTP(一种用于在计算机之间传输文件的旧协议)的错误在 Squid 代理服务器中存在了近 29 年,并允许读取进程内存的碎片。该漏洞名为 Squidbleed,标识符为 CVE-2026-47729。该问题影响自 1997 年以来发布的所有 Squid 版本,包括具有标准设置的服务器。

攻击者需要自己的 FTP 服务器,目标代理可以通过 TCP 端口 21 访问该服务器。代理服务器充当用户和站点之间的中间链接:公司、学校和其他公共网络中的 Internet 流量通常通过 Squid 传递。当处理专门准备的文件列表时,Squid 可能会超出分配的内存范围,并将随机数据误认为文件名。然后,服务器将找到的片段在包含文件列表的页面中返回给攻击者。

来自其他用户通过同一代理的请求可能会保留在内存中:密码、API 密钥和授权数据。 HTTPS 可以降低大多数连接的风险。 Squid 通常以加密形式传输安全流量,并且无法读取请求的内容。对于未加密的 HTTP 连接以及代理解密加密流量以进行检查或过滤的网络来说,泄漏仍然是危险的。

解析没有文件名的 FTP 目录字符串时发生错误。 Squid代码中的函数并没有停在行尾,而是继续读取缓冲区之外的数据。技术细节和演示代码由 Calif.io 研究人员发布。

Squid 开发人员已经修复了受支持分支中的漏洞。该补丁包含在 Squid 7.6 版本中。如果不需要通过旧协议传输文件,管理员应更新代理并禁用 FTP。