事件驱动函数中通过多部分请求进行字符串操作速度缓慢 (CVE-2024-29186)
CVE编号
CVE-2024-29186利用情况
暂无补丁情况
N/A披露时间
2024-03-23漏洞描述
Bref是一个开源项目,帮助用户在亚马逊网络服务上使用PHP进行无服务器开发。在使用Bref版本2.1.17之前的版本与事件驱动函数运行时一起使用,并且处理程序是`RequestHandlerInterface`时,Lambda事件将被转换为PSR7对象。在转换过程中,如果请求是多部分的,每个部分将被解析。在解析过程中,每个部分的`Content-Type`头部将使用`Riverline/multipart-parser`库读取。该库在`StreamedPart::parseHeaderContent`函数中对头部值执行缓慢的多字节字符串操作,准确地说,从头部值读取的第一个(`$string`)和第三个(`$from_encoding`)参数会被传递给`mb_convert_encoding`函数。攻击者可以发送特制的请求,迫使服务器执行长时间的操作,导致长时间的计费持续时间。攻击要求Lambda必须使用事件驱动函数运行时和`RequestHandlerInterface`处理程序,并且至少实现一个接受POST请求的端点;攻击者可以发送长达6MB的请求(这足以导致Bref默认1024MB RAM Lambda镜像的计费时间在400ms至500ms之间);如果Lambda使用PHP运行时<= php-82,则影响更大,因为Bref默认1024MB RAM Lambda镜像的计费时间可能超过每个请求的900ms。请注意,此漏洞仅适用于从请求体读取的头部,因为请求标头受到限制,允许的总最大大小约为~10KB。版本2.1.17中包含了这个问题的修复。解决建议
"将组件 bref/bref 升级至 2.1.17 及以上版本"
参考链接 |
|
---|---|
https://github.com/brefphp/bref/commit/5f7c0294628dbcec6305f638ff7e2dba8a1c2f45 | |
https://github.com/brefphp/bref/security/advisories/GHSA-j4hq-f63x-f39r |
- 攻击路径 网络
- 攻击复杂度 低
- 权限要求 无
- 影响范围 未更改
- 用户交互 无
- 可用性 低
- 保密性 无
- 完整性 无
CWE-ID | 漏洞类型 |
Exp相关链接

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论