CVE-2025-23016:严重的 FastCGI 堆溢出威胁嵌入式设备,PoC 发布

admin 2025年5月26日13:57:13评论24 views字数 938阅读3分7秒阅读模式
CVE-2025-23016:严重的 FastCGI 堆溢出威胁嵌入式设备,PoC 发布
CVE-2025-23016:严重的 FastCGI 堆溢出威胁嵌入式设备,PoC 发布

Synacktiv 的安全研究员 Baptiste Mayaud 披露了 FastCGI 库中的一个高危漏洞,编号为 CVE-2025-23016(CVSS 9.4)。该漏洞源于对参数长度的不当处理,可能导致可利用的堆溢出,尤其会影响摄像头和嵌入式系统等低功耗设备。

FastCGI 是一个 C 语言库,旨在将 Nginx 或 Apache 等 Web 服务器与第三方 Web 应用程序连接起来。它广泛应用于需要轻量级编译应用程序的环境。虽然 PHP-FPM 重新实现了 FastCGI,并且不受影响,但许多嵌入式技术仍然直接使用了该易受攻击的库。

该漏洞存在于 ReadParams() 函数中。在处理传入的 HTTP 参数时,FastCGI 库会错误地计算内存分配所需的总大小:

“可能是为了在键和值之间存储‘=’字符,并在字符串末尾添加一个空字节,因此在最终的分配计算中添加了‘+2’, ”Baptiste Mayaud解释道。

在 32 位系统上,此加法运算可能导致整数溢出,导致尽管预期数据量很大,但内存分配却很小。当数据被复制到这个过小的缓冲区时,就会发生堆溢出。

能够控制HTTP 请求参数的攻击者可以:

  • 触发堆溢出。

  • 损坏的内存结构。

  • 可能在受影响的设备上执行任意代码。

这尤其危险,因为嵌入式系统通常缺乏现代漏洞缓解措施。

在演示中,Mayaud 使用 FastCGI 设置了一个存在漏洞的 lighttpd 服务器。通过利用该漏洞,他成功操纵堆内存,覆盖了 FastCGI 流结构中的函数指针。最终,他通过劫持 fillBuffProc 函数指针实现了任意代码执行。

该漏洞利用策略基于获取 FCGX_Stream 结构体之前的易受攻击指针,然后覆盖其缓冲区以重写该结构体,并将 fillBuffProc 替换为系统的 PLT 条目。Mayaud 发布了针对此漏洞的概念验证 (POC) 漏洞利用代码。

建议用户将 FastCGI 库升级到2.4.5或更高版本,该版本已修复该错误。

参考文章:

https://www.synacktiv.com/en/publications/cve-2025-23016-exploiting-the-fastcgi-library

原文始发于微信公众号(Ots安全):CVE-2025-23016:严重的 FastCGI 堆溢出威胁嵌入式设备,PoC 发布

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月26日13:57:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2025-23016:严重的 FastCGI 堆溢出威胁嵌入式设备,PoC 发布https://cn-sec.com/archives/4017537.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息