李锋镝的博客

  • 首页
  • 时间轴
  • 说说
  • 系列
  • AI工具集
  • 论坛
  • 友圈
    • 友链
    • 朋友圈
    • 游客中心
  • 留言
    • 留言
    • 走心评论
  • 关于
    • 关于本站
    • Now
    • 每日心情
    • 网站地图
    • 网站统计
    • 赞助
  • 星球穿梭
  • 🚇开往
静亦定 动亦定
惟坚韧者始能遂其志
  1. 首页
  2. 代码人生
  3. 正文

php2shell远程执行漏洞修复(CVE-2026-109618 和 CVE-2026-109619)

2026年10月22日 16 0 4

一夜之间,PHP世界的天塌了。

2026 年 10 月 21 日,PHP 官方正式发布紧急安全更新,修复两项严重安全漏洞:CVE-2026-109618 和 CVE-2026-109619。

两项漏洞的 CVSS v4.0 评分均为 9.2 分(严重),攻击者可能在未经身份验证的情况下,利用漏洞实现远程代码执行(RCE)。

这两个漏洞其实最早在8月份就已经被发现了,更夸张的是,这两个坑已经被埋了十几年。先说明最重要的修复漏洞相关的,后面再吐槽……

漏洞说明

1. CVE-2026-109618:OOM内存处理漏洞(RCE)

GHSA: GHSA-w8hw-w9fx-j79w

  • 原理:PHP 在触发 memory_limit OOM 时,使用 longjmp() 直接中断请求。此时请求内部数据还没完全初始化,请求清理逻辑会把无效内存当成合法对象处理,造成内存破坏。
  • 攻击向量:特制 multipart/form-data POST(大量嵌套表单字段、空文件上传控件),在不突破 post_max_size 的前提下快速耗尽内存触发OOM。
  • 重点:mod_php 环境最危险,无需业务代码运行,请求阶段就触发。

2. CVE-2026-109619:陈旧全局状态 / Use-After-Free(RCE)

GHSA: GHSA-6wmf-4rv5-p3rp

  • 原理:请求致命错误释放内存后,仍残留旧请求状态引用。同一个FPM/mod_php工作进程处理下一个请求时,在初始化重置之前访问已经释放的旧状态,造成use-after-free,可实现RCE、信息泄露。
  • 触发条件:跨请求复用同一个worker进程,旧请求崩溃后状态未清理干净。PHP-FPM环境可利用。
  • 临时缓解:关闭 session.upload_progress.enabled = 0,并配置FPM进程定期重启(pm.max_requests),减少跨请求状态残留风险。

受影响版本 & 修复版本

分支安全版本
PHP 8.2≥ 8.2.35
PHP 8.3≥ 8.3.36
PHP 8.4≥ 8.4.27
PHP 8.5≥ 8.5.12

PHP8.1及以下的版本不支持安全更新,这个需要尽快升级到新版本。

所有对外提供Web请求的SAPI都受影响:mod_php、PHP-FPM、php-cgi、FrankenPHP、LiteSpeed PHP。

应急处置方案(优先级:升级 > 临时缓解)

首选:升级PHP到上面安全版本

  • 升级后必须重启php-fpm / apache,旧worker进程不会自动加载新版二进制。
  • 升级后检查 php -v 和 phpinfo() 确认版本。

临时缓解(业务无法立刻升级时,不能完全根治,仅降风险)

  1. php.ini:session.upload_progress.enabled = Off
  2. PHP-FPM:设置 pm.max_requests(例如 200~500),强制worker进程定期销毁重建,切断跨请求残留状态
  3. WAF:拦截异常 multipart POST 请求(超大表单字段、大量嵌套文件上传控件)
  4. 临时收紧 memory_limit,但容易误伤正常业务,不推荐优先使用
  5. 流量侧:限制POST上传请求频率、单请求表单字段数量

官方明确:临时配置不能完全消除漏洞,升级是唯一彻底修复手段。

自查命令

# 查看php版本
php -v

# 查看FPM pool配置
grep -E "session.upload_progress.enabled|pm.max_requests" /etc/php/*/fpm/php.ini /etc/php/*/fpm/pool.d/*.conf

常见误区

  1. “我的网站没有文件上传接口就不受影响”:漏洞在PHP内核multipart解析,只要接受POST multipart请求就可触发,和业务代码是否有上传功能无关。
  2. “使用Nginx+PHP-FPM就安全”:FPM可被CVE-2026-109619利用,风险低于mod_php,但依然高危。
  3. “WAF可以完全挡住”:WAF只能拦截已知payload,内存类漏洞变种容易绕过,不可替代补丁。

接下来吐槽吐槽。

php2shell是PHP内核层面的两个内存安全漏洞,不是WordPress、Drupal这类应用漏洞;无认证即可RCE,CVSS 9.2。

发现主体:Calif Research(借助OpenAI GPT-5.6 Sol);Wiz团队独立复现并提交报告,OpenAI的Patch the Planet安全计划作为协作背景。

漏洞历程

一、历史伏笔(为什么这个坑埋了十几年)

  1. 2004年:安全研究者Stefan Esser最早发现PHP memory_limit OOM中断带来的内存破坏利用思路,但当时没有公开完整EXP,属于历史上同家族漏洞的源头。
  2. 2020年:有人提交PHP bug #78876,描述multipart解析触发OOM时临时文件清理异常;当时只当成小bug,没有证明可RCE,未修复。
  3. 2024年:OSTIF+Quarkslab审计PHP,再次挖到这个相关OOM问题;但依然无法稳定构造RCE利用链,所以PHP项目没有打补丁,问题遗留。

核心本质:PHP的错误处理机制依赖longjmp做非局部跳转,遇到OOM/致命错误时会立刻中断执行,跳过很多正常的初始化、对象销毁、状态重置逻辑。多年来大家知道这个代码模式有风险,但一直没找到可靠完整的RCE链路。

二、漏洞发现过程(2026年)

Calif团队参与OpenAI「Patch the Planet」计划,目标审计高影响力开源软件,选定PHP。研究者带着2004年、2020、2024年遗留的OOM历史漏洞线索,使用大模型辅助源码静态分析,寻找可被利用的中断点。

  1. 2026-08-01:Calif找到第一条可稳定RCE的OOM触发路径,继续深挖,最终定位到两个独立漏洞:CVE-2026-109618(OOM中断内存破坏)、CVE-2026-109619(跨请求use-after-free)。
  2. 2026-08-11:Calif正式向PHP安全团队提交第一个漏洞,启动协调披露流程(Coordinated Disclosure)。
  3. 2026-08-14:提交PoC,证明无认证RCE可行。
  4. 2026-08-15:PHP官方确认PoC有效。
  5. 2026-08-21:提交第二个漏洞(use-after-free)。
    • 同期Wiz团队独立发现同类漏洞,并且验证了在WordPress、Drupal上直接RCE。
  6. 接下来2个月:PHP基金会开发补丁、多轮测试;各方约定原定10月22日晚统一对外发布公告+补丁。

三、泄密事件:披露提前(关键转折点)

协调披露的前提:在正式发布前,漏洞细节、EXP严格保密,留给全球运维打补丁的窗口期。

  • 10月20日夜间:漏洞编号、漏洞信息意外泄露到外网;随后漏洞演示视频流出,EXP副本快速扩散。
  • 漏洞细节泄露之后,攻击者已经可以开始分析、构造利用载荷,还没拿到官方补丁。
  • PHP基金会被迫紧急提前24小时发布安全版本,也就是10月21日UTC 14:00,提前上线修复包,同步公开漏洞公告。
  • Cloudflare等厂商在正式披露前紧急上线WAF临时防护规则;同时互联网上开始出现针对php2shell的探测和攻击行为。

因为漏洞的提前披露,以及使用漏洞攻击的视频在互联网上流出,欧洲大量的政府网站暂停服务,紧急修复这个漏洞,就连高市早苗这个不务正业的首相都发推提醒,可见影响范围之大。

我这一大早也是开始更新了自己网站的php版本,忙活了一上午,算是略微心安了一点,因为不知道还有多少的漏洞没有被披露,互联网太危险了……

你的网站PHP版本更新了没?

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
分享到

php2shell远程执行漏洞修复(CVE-2026-109618 和 CVE-2026-109619)

也可使用浏览器菜单中的「分享」功能

微信扫一扫分享

标签: PHP php2shell 安全 漏洞
最后更新:2026年10月22日

岁月同一天 10 月 22 日

回望过去的今天,你在写什么

  • 后端
    1 年前 2025年10月22日
    MapStruct深度解析:从原理到实战,告别BeanUtil的性能与安全痛点

    在Java开发中,对象映射是高频操作——从DTO转实体、实体转VO,再到多数据源合并为目标对象,几乎每个业务层都离不开。…

相关文章
  • @Valid 和 @Validated 的区别2025年5月23日
  • 支撑全网40%网站的WordPress正在重新拥抱PHP生态2026年9月14日
  • 讨论下XXL-JOB GLUE模式的安全问题2026年10月10日
  • 记录一下PHP升级8.5遇到的坑2026年8月28日
  • Kratos+主题新功能预览及功能演示2026年6月29日

李锋镝

既然选择了远方,便只顾风雨兼程。

打赏 点赞
< 上一篇
1234567891112131415161718192021222324252627282930313233343536373839404142434446474849505152535455575859606162636465666769727476777879808182858687909293949596979899
取消回复
…

文章评论

置顶评论

  • 秋风于渭水Lv 1 置顶

    会把Docker里的遗漏的,`ps aux | grep php-fpm`直接看有多少对外的 PHP-fpm进程更彻底一点

    LinuxLinuxEdge 155.0.0.0Edge 155.0.0.0中国中国-广东-东莞
    2026年10月22日
    00 回复
    • 李锋镝博主

      @秋风于渭水 赞!置顶了,让更多人看到~

      macOSmacOSChrome 153.0.0.0Chrome 153.0.0.0中国中国-北京
      2026年10月22日
      00 回复
  • 海风心情Lv 1

    感谢及时分享这么重要的安全信息,看完立刻去检查了服务器版本,这种潜伏十几年的漏洞真是防不胜防。

    WindowsWindowsEdge 155.0.0.0Edge 155.0.0.0中国中国-山东-聊城
    2026年10月22日
    00 回复
    • 李锋镝博主

      @海风心情 是啊,搞的人兵荒马乱的

      macOSmacOSChrome 153.0.0.0Chrome 153.0.0.0中国中国-北京
      2026年10月22日
      00 回复
  • 有位老头低着头在他家的麦田小路上转悠,这时走过来一个盛气凌人的年轻人,他趾高气扬的对老头说:“你总这样低着头走路,多难看啊!”
    老头道:“要是田里的麦子都像你一样,人们早就饿死了。”

    听点儿音乐吧 朋友~
    文章目录
    最新 热点 随机
    最新 热点 随机
    php2shell远程执行漏洞修复(CVE-2026-109618 和 CVE-2026-109619) 聊一聊DeepSeek开放自研搜索API这事 Let's Encrypt宣布证书缩短至64天,手动时代彻底终结! Markdown 的前世今生 讨论下XXL-JOB GLUE模式的安全问题 心气没了,干什么都不得劲
    给主题增加了游客中心功能心气没了,干什么都不得劲我觉得是时候公布我的导航网站了游本昌去世关于主题加载速度优化的一点儿小演进给主题增加了Now、每日心情、年度回顾、岁月同一天、随机漫步等功能
    joda DateTime自定义格式&计算两个日期相差天数 Kubernetes(K8s)的Service运行原理 本来想把主题上传到WordPress官方主题商店的,结果懵逼了…… 属性名称闹的一场乌龙事件 封控、封控、再封控,居家、居家、再居家 Docker打包部署示例
    最近评论
    李锋镝 发布于 4 分钟前(10月22日) 赞!置顶了,让更多人看到~
    秋风于渭水 发布于 5 分钟前(10月22日) 会把Docker里的遗漏的,`ps aux | grep php-fpm`直接看有多少对外的 PHP...
    李锋镝 发布于 21 分钟前(10月22日) 独立博客还真说不好是不是好事……
    李锋镝 发布于 22 分钟前(10月22日) 是啊,搞的人兵荒马乱的
    海风心情 发布于 34 分钟前(10月22日) 感谢及时分享这么重要的安全信息,看完立刻去检查了服务器版本,这种潜伏十几年的漏洞真是防不胜防。
    标签聚合
    Redis SQL Spring IDEA JVM 分布式 AI编程 数据库 K8s SpringBoot 多线程 日常 JAVA 架构 MySQL Claude WordPress ElasticSearch Theme AI
    友情链接
    • 知向前端
    • 搬砖日记
    • Honesty
    • 韩小韩博客
    • 皮皮社
    • 志文工作室
    • 九仞之行
    • 刘永博客
    • 韩情脉脉
    • lijie blog
    • 懋和道人
    • sssr7844的博客
    • 老张博客
    • Mr.Sun的博客
    • 哥斯拉
    • 瓦匠个人小站
    • 彬红茶日记
    • Serendipity
    • 林羽凡

    COPYRIGHT © 2016-2026 lifengdi.com. ALL RIGHTS RESERVED.

    lifengdi.com 十年之约虫洞

    Domain age badge for lifengdi.com

    Theme Kratos-plus By Dylan Li

    津ICP备2024022503号-3

    京公网安备11011502039375号