楼主: wenO6ZTcp8ct6
235 1

[其他] PHP2Shell 漏洞研究原文、官方修复公告与四个修复版本(CVE-2026-109618、109619) [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

已卖:30份资源

初中生

95%

还不是VIP/贵宾

-

威望
0 级
论坛币
525 个
通用积分
132.8416
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
430 点
帖子
11
精华
0
在线时间
0 小时
注册时间
2020-9-16
最后登录
2020-9-16

楼主
wenO6ZTcp8ct6 发表于 2026-10-28 17:27:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

资料名称: PHP2Shell,即 Wiz Research 2026 年 10 月 21 日发布的研究长文《PHP2Shell: AI uncovers critical RCE vulnerabilities affecting 70% of the Internet》,配套 PHP 官方安全公告与四个分支的修复版本发布说明

 

帖内资料: 漏洞的编号与评分、四个原始缺陷的技术机制、受影响版本与修复版本、AI 在发现与利用环节承担的具体工作、负责披露的时间线,以及 PHP 官方对各类部署形态给出的处置办法与临时缓解参数

 

时间覆盖: 研究长文与 PHP 官方补丁、公开披露同为 2026 年 10 月 21 日;漏洞最早发现于 2026 年 8 月 19 日;本机读取日期 2026-10-28

 

许可与引用: 三处均为公开页面(Wiz 博客、PHP 官方公告、PHP 下载页),页面未公布转载许可;本贴只整理其中已公开的编号、评分、版本号与处置条目,不复制原文图片、不整段转载

 

适用任务: 要确认自家服务器跑的 PHP 版本是否受影响、要查该升到哪个补丁版本的,想了解这起事件里 AI 到底做了哪几件事、想复盘漏洞披露流程的

 

这组资料是什么

 

一份研究方长文加一组官方公告。研究方那篇讲清了漏洞是怎么被找到的、AI 承担了哪些环节、缺陷的技术机制是什么;PHP 官方那组公告给出受影响版本、修复版本和运维处置办法。两者对得上:研究方给事件全貌,官方给可执行结论。

 

漏洞编号与评分

 

归在两个 CVE 下:CVE-2026-109618 与 CVE-2026-109619,严重度均为 CVSS v4.0 9.2,属于 Critical。缺陷类型是内存安全问题,官方公告里列的 CWE 包括 CWE-416(释放后使用)、CWE-755(异常条件处理不当)、CWE-824(未初始化指针访问)、CWE-1325、Pawn 与 CWE-1419。

 

研究方明确说,这是 PHP 自身内核的问题,与运行在上面的应用代码无关;过去十年发布的每一个 PHP 版本都至少受其中一个漏洞影响,往回追到 5.4。

 

四个原始缺陷

 

研究方最初向 PHP 报告的是四个可利用的实例,归到上述两个 CVE 下。

 

第一个是上传进度反序列化器释放后使用。PHP 的 Session 模块在处理上传进度时能解码会话数据,解码器把请求私有的簿记状态存放在全局变量里;一次致命内存分配失败会打断这条路径,销毁请求堆内存,把这个全局状态留在已发布状态。后续由同一 worker 处理的请求,会把攻击者重新占用的内存当作活的簿记状态读进来,这个陈旧状态就成了内存破坏的原语。

 

第二个是远程进程内存泄露。PHP 在请求启动阶段解析 RFC1867 multipart 请求,此时正常的模块初始化还没完成;会话上传进度处理能在这么早的阶段初始化 Session 状态并发布会话 ID,内存耗尽错误会让请求在清理完成前中止,PHP 销毁请求堆内存后,会话 ID 指针可能仍指向已释放的分配。后续请求走到上传进度清理路径时,PHP 信任这个陈旧指针,把回收堆里的内容做 URL 编码后塞进 PHPSESSID 响应 cookie。

 

研究方演示了未认证读取攻击者指定大小的 worker 内存,其中含有攻击者请求之外的数据。

 

第三个是致命错误回溯释放后使用。PHP 把最近一次致命错误的回溯存在全局变量里;致命的内存耗尽错误销毁请求堆内存时不会把这个值置空,worker 存活下来后带着一个仍指向旧请求内存的全局值,下一个请求早期输出诊断信息时就会访问到它,形成跨请求释放后使用,可发展成可控内存破坏。研究方用它对 Drupal 实现了未认证远程代码执行。

 

第四个是 OPcache 类型混淆。OPcache 把编译后的 PHP 结构存在共享内存里,用索引映射到各 worker 的运行时指针;两个 worker 通过共享前沿协调索引。持久化过程中进程本地的游标已前移,但共享前沿只在持久化完成后才发布;这中间发生分配失败,就会留下一个部分持久化的对象,指向共享状态里仍视为可用的槽位。

 

另一个 worker 复用该槽位装入不同类型的运行时对象时,陈旧的共享元数据解析出错误类型的指针,跨 worker 类型混淆由此产生,共享的 OPcache 状态被破坏。研究方用它对 WordPress 搭出了未认证远程代码执行链。

 

研究方也说明,代码库里还有更多同类变体,不在这四个之内,但 PHP 团队的补丁是从根上修复,打了补丁的版本中所有变体一并消除。

 

影响面

 

官方公告给出的受影响版本是四个分支:8.
5.x 早于 8.5.12、8.
4.x 早于 8.4.27、8.
3.x 早于 8.3.36、8.
2.x 早于 8.2.35。8.1 及更早版本已停止维护,不再获得更新,部分发行版与 LTS 厂商会提供回补。

 

风险最高的是 mod_php 部署方式,官方说明已演示过一种利用:未认证请求可以在任何应用代码运行之前就触发攻击。所有对外提供 web 请求的 PHP 安装都受影响,包括 PHP-FPM、Apache 加 mod_php、php-cgi、FrankenPHP 和 LiteSpeed。

 

研究方的验证目标选的是 WordPress、Drupal、Joomla 三个平台的最新容器镜像,用一个整合脚本 php2shell 演示了未认证远程执行;他们同时演示了不必拿到远程代码执行也能读出 PHP 进程内存里的密码、令牌和 API 密钥。研究方强调,漏洞本身在 PHP 里,跑一个 Hello World 也会中招。

 

AI 实际承担了什么

 

研究方写明,脆弱代码存在了十几年,把它变成可用的利用需要串起多个缺陷,还要针对每个目标的内存布局反复测试调试——AI 前这活儿极难实现,更难规模化;有了 AI 之后它不再是障碍,模型能帮助把利用适配到不同 PHP 版本、配置和内存布局,配合测试与调试工具,模型可以分析失败原因并迭代调整。

 

点名的工具是 Wiz Atlas、Gemini 4 Argon 和 GPT-5.6 Sol。Google DeepMind 的 Gemini 安全负责人 Raluca Ada Popa 在文中的说法是,这些关键漏洞十多年没被处理,就是因为漏洞发现与利用复杂到极点,Gemini 4 Argon 帮助防守方跨过了这个坎。

 

研究方也把这条能力给了防守方:原文提到这些能力同样让防守方有机会挖出并修掉经受过多年审视的缺陷,机会在于把这件事变成常规操作——系统性地在既有软件里找问题,在进入生产前抓住新的问题。

 

原文明说,做成可利用版本这件事,AI 改变的是理解弱点并把它变成可用利用的能力。结论那段的说法是,借助前沿 AI 模型和合适的工具,一名研究员一周完成的工作,过去需要一支世界级团队花几个月。

 

负责披露的时间线

 

2026 年 8 月 19 日,Wiz Research 用 Wiz Atlas、Gemini 4 Argon 和 GPT-5.6 Sol 发现第一个 PHP 漏洞;8 月 20 日确认针对 Drupal 的未认证远程代码执行;8 月 21 日确认针对 WordPress 的;8 月 24 日向 PHP 安全团队报告漏洞;9 月 21 日 PHP 确认报告并开始开发协同修复;10 月 21 日打了补丁的版本发布,同日公开披露。

 

公开披露前,Wiz Research 与 PHP 团队、Calif 和 OpenAI 协作完成发现、协调与补丁验证;还与 Google Cloud、Cloudflare、AWS、Microsoft、Automattic、Fastly、Akamai、Imperva、Vercel 等合作方准备客户指引、检测规则和开箱即用的缓解措施,供那些不能立刻打补丁的用户使用。

 

官方给的处置办法

 

升级到修复版本是唯一完整的处置办法。如果暂时无法升级,官方公告列了几条针对性缓解。

 

针对内存耗尽这一类,官方建议在 FPM 或 Apache 层级把 memory_limit 设为 -1,确保应用层无法覆盖,并检查其他层级没有重新设上有限值;把 post_max_size 降到 8M(不需要上传)或 32M(需要上传),让 upload_max_filesize 小于它;在 web 服务器或代理层限制解码后的请求体大小、字段数、multipart 部件数、header 数量与嵌套深度,覆盖缺少可用 Content-Length 的请求;用容器或 cgroup 的可用性边界杀掉受影响 worker,而不是用 RLIMIT_AS 或 RLIMIT_DATA。

 

针对陈旧全局状态这一类,官方建议把 session.upload_progress.enabled 设为 0 并重启所有 worker,要写在 php.ini、FPM pool 或服务器配置里让它在请求解析前生效,不要靠 ini_set 或 FPM 的 .user.ini;PHP 8.5 上再设 fatal_error_backtraces 为 0 并重启 worker;删掉会在初始化前触发诊断输出的无效或废弃的请求级设置,用 error_reporting 或 display_errors 隐藏没有用;把攻击者能触发的致命错误和执行超时修掉,包括回调、上传、导入处理和清理阶段。

 

官方在公告里写明,PHP 官方公告与 GitHub 上的 GHSA 公告给出了同样的缓解办法,Linux 发行版和 LTS 厂商提前拿到了补丁,可以查自己所用发行版的更新包。

 

原页在哪

 

研究方长文在 Wiz 博客,标题 PHP2Shell,作者是 Sagi Tzadik、Shir Tamari、Nir Ohfeld 和 Tomer Schwartz;PHP 官方的安全公告和四个分支的发布说明都在 php.net 的存档页与下载页。完整网址和引用提醒放在下面。

 

────────────────

三个原始地址、官方公告入口和引用时的日期提醒都在下面,回复一下就能看到。


游客,如果您要查看本帖隐藏内容请回复
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


沙发
wenO6ZTcp8ct6 发表于 2026-10-28 19:03:55
谢谢楼主,先蹲一个

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-11-7 19:06