返回

文章详情

重大 PHP 漏洞泄露

Hacker News2026年10月21日 04:26

概述 两个缓存的桶指针,一个已释放的树。在 PHP session.upload_progress 中发生堆使用后释放,达到 zend_call_function。PHP 的 session.upload_progress 处理程序(位于 ext/session/session.c 的 php_session_rfc1867_callback)将两个原始 zval * 桶指针缓存到活跃 HashTables 中:post_bytes_processed 和 current_file_bytes_processed。两个指针均指向请求生命周期下攻击者脚下已释放的数组。按 [SOURCE] 查看完整内容包:触发请求、两个 PoC 链、提取工具和已验证的每个构建符号差异。默认配置足够。session.upload_progress.enabled=1 和默认名称、前缀、freq=1% ,min_freq=1。一个快速的多部分 POST 请求会武装这两个缓存;第二次 update() 会重新读取会话文件,而 zend_hash_update 会通过其 HashTable 析构函数 zval_ptr_dtor 销毁之前解码的树。已释放的桶随后被重新分配,过时的指针落在攻击者形状的 zend_fcall_info / zend_internal_function 上,调用 zend_call_function,即 system()。以下所有内容已针对真实的 php-src(8.4.4 和 8.2.34)进行验证:原始写入中的每一行引用,ZVAL_COPY_VALUE 无引用移动,重新解码/track_init 释放,以及结构偏移(zend_fcall_info 64B,param_count 在 +48,zend_internal_function.handler 在 +88,IS_STRING_EX 0x106,IS_OBJECT_EX 0x308)。本帖中的框架包含每构建的差异提取(--syms),因为 zval_ptr_dtor 和 zend_call_function 之间的偏移量会随着每个构建而变化。官方 LiteSpeed lsphp82 8.2.34 调试符号提供三种发行版子构建的确切值(bookworm 0xc930,noble 0xcef0,jammy 0xd060),并在下面包含。php-up-2026(包)/ 点击目录以展开 · 点击文件查看内容,选择文件,从树中选择文件以查看源代码 使用 如何验证、提取和交付链 $ python3 php_up_framework.py --selftest # forge + body layout checks $ python3 php_up_framework.py --syms --binary /path/to/lsphp # extract dtor / call / delta $ python3 php_up_framework.py --build --bug 619 --dtor <leak> -o body.bin $ python3 php_up_framework.py --lab --bug 618 --dtor <leak> # php-fpm lab delivery $ python3 php_up_framework.py --live <target-url> --bug 619 --dtor <leak> 减轻措施(补丁前) 在官方建议发布之前应做什么。您今晚可以完成所有这些工作。 1. 盘点您的 PHP 确保了解每个主机和版本(php -v)。任何运行在 PHP 7.x 或更旧版本上的内容将无法获得修复,因此计划升级。 2. 应用临时措施(最佳情报、低风险、可逆) 在 php.ini / .user.ini / .htaccess 中:session.upload_progress.enabled = Off 重新加载 PHP-FPM 或您的网络服务器。我的分析表示,这关闭了两个可能路径中的一个。 3. 限制多部分上传 在边缘 第两个可能路径存在于多部分解析器本身,对于任何多部分/form-data POST 请求,无论上述设置如何,都会运行。如果您有 WAF 或反向代理,请加强检查或对不需要上传的端点限制多部分 POST 的速率。这是企业厂商为需要维护客户安静部署的同样的网络层减轻措施。 4. 补丁发布后的第二件事 当前稳定版本:8.5.11 / 8.4.26 / 8.3.35 / 8.2.34。如果您的托管是由托管提供商管理,今天确认您的提供商的时间线。 我为什么免费发布此内容 预补丁的减轻措施不应该是订阅特权。我是一个人作坊,最有可能在漏洞和补丁之间的差距中受到伤害的组织是没有企业威胁情报合同的小团队。上述步骤不花任何费用。今晚减少风险,而不是明天进行事件响应。 oficiales建议发布后,我会跟进并确认我的根本原因判断是否正确,联合 Andrew Dorman (@acd421) 和 Arch&Yuki (@ArchKnight23)。 下载 获取它的地方。 从常规地点获取签名版本:wget http://jackalsyn.com/posts/phpupAssets/php-up-2026.tar.gz tar -xzf php-up-2026.tar.gz hash(256) a29d640e0481ff64a39541faeeeec0f998ecd18fb692816e75a6bcfa0f683017 赞助:作者 @J4ck3LSyN 研究 Andrew Dorman (@acd421) 研究 Arch&Yuki (@ArchKnight23) 验证已武器化(开发)

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

☕请我喝杯咖啡