Ruby URI组件漏洞:CVE-2025-27221与CVE-2025-61594深度解析

本文详细分析了Ruby的URI库中两个关键安全漏洞CVE-2025-27221和CVE-2025-61594,它们均会导致敏感凭证信息泄露。文章涵盖了漏洞的技术细节、影响范围、修复版本以及背后的安全原理,为Ruby开发者提供了重要的安全更新指南。

CVE-2025-27219, CVE-2025-27220 和 CVE-2025-27221 的安全公告

发布于 2025年2月26日

我们发布了关于CVE-2025-27219、CVE-2025-27220和CVE-2025-27221的安全公告。详情请阅读下文。

CVE-2025-27219: CGI::Cookie.parse中的拒绝服务漏洞

cgi gem中的CGI::Cookie.parse方法存在可能导致拒绝服务攻击的可能性。此漏洞已被分配CVE标识符CVE-2025-27219。我们建议升级cgi gem。

详情

在某些情况下,CGI::Cookie.parse方法解析cookie字符串需要超线性时间。向该方法输入恶意构造的cookie字符串可能导致拒绝服务。

请将CGI gem更新到版本0.3.5.1、0.3.7、0.4.2或更高版本。

受影响版本

  • cgi gem版本 <= 0.3.5, 0.3.6, 0.4.0 和 0.4.1。

致谢

感谢lio346发现此问题。同时感谢mame修复此漏洞。

CVE-2025-27220: CGI::Util#escapeElement中的正则表达式拒绝服务漏洞

cgi gem中的CGI::Util#escapeElement方法存在正则表达式拒绝服务的可能性。此漏洞已被分配CVE标识符CVE-2025-27220。我们建议升级cgi gem。

详情

CGI::Util#escapeElement中使用的正则表达式易受ReDoS攻击。构造的输入可能导致高CPU消耗。

此漏洞仅影响Ruby 3.1和3.2版本。如果您正在使用这些版本,请将CGI gem更新到版本0.3.5.1、0.3.7、0.4.2或更高版本。

受影响版本

  • cgi gem版本 <= 0.3.5, 0.3.6, 0.4.0 和 0.4.1。

致谢

感谢svalkanov发现此问题。同时感谢nobu修复此漏洞。

CVE-2025-27221: URI#join, URI#merge 和 URI#+ 中的用户信息泄露漏洞

uri gem中的URI#joinURI#mergeURI#+方法存在可能导致用户信息泄露的可能性。此漏洞已被分配CVE标识符CVE-2025-27221。我们建议升级uri gem。

详情

URI#joinURI#mergeURI#+方法在主机名被替换后,仍会保留诸如user:password的用户信息。当使用这些方法从包含秘密用户信息的URL生成指向恶意主机的URL,并让某人访问该URL时,可能会发生非预期的用户信息泄露。

请将URI gem更新到版本0.11.3、0.12.4、0.13.2、1.0.3或更高版本。

受影响版本

  • uri gem版本 < 0.11.3, 0.12.0 到 0.12.3, 0.13.0, 0.13.1 以及 1.0.0 到 1.0.2。

致谢

感谢Tsubasa Irisawa (lambdasawa)发现此问题。同时感谢nobu对此漏洞的额外修复。

历史

  • 最初发布于2025年2月26日 7:00:00 (UTC)

CVE-2025-61594: URI 凭据泄露绕过先前修复

发布于 2025年10月7日

我们发布了关于CVE-2025-61594的安全公告。

CVE-2025-61594: 绕过CVE-2025-27221修复的URI凭据泄露漏洞

在受影响的URI版本中,存在对CVE-2025-27221修复的绕过,可能导致用户凭据泄露。

此漏洞已被分配CVE标识符CVE-2025-61594。我们建议升级uri gem。

详情

当使用+运算符组合URI时,原始URI中的敏感信息(如密码)可能会被泄露。这违反了RFC3986规范,并使应用程序面临凭据泄露的风险。

请将URI gem更新到版本0.12.5、0.13.3、1.0.4或更高版本。

受影响版本

  • uri gem版本 < 0.12.5, 0.13.0 到 0.13.2 以及 1.0.0 到 1.0.3。

致谢

感谢junfuchong (chongfujun)发现此问题。同时感谢nobu对此漏洞的额外修复。

历史

  • 最初发布于2025年10月7日 0:00:00 (UTC)
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计