2026年10月,一个代号 PHP2Shell 的漏洞集合被公开,CVSS 评分 9.2。它位于 PHP 语言核心,允许在未认证的情况下实现远程代码执行(RCE)。受影响的不只是某个插件或某个框架,而是支撑超过 70% 网站的那套底层运行时——WordPress、Drupal、Joomla、Magento 以及大量企业 API 都跑在它上面。
更值得记一笔的是发现方式。这轮研究由 Wiz Research 主导,Google Cloud 做了文档记录,动用的工具包括 Wiz Atlas、Gemini 4 Argon 和 GPT-5.6 Sol 等先进 AI 模型。它们要找的是内存破坏类缺陷——这类问题在代码里潜伏了十年以上,此前一直没被看见。
核心缺陷长什么样
和常见的插件过期漏洞不同,这次的毛病出在 PHP 解释器的 C 语言实现里。
CVE-2026-109618 指向内存耗尽(OOM)场景下的内存破坏。当一次请求超出配置的内存上限,PHP 会强制中断执行。如果 OOM 触发点恰好落在内部结构部分初始化的过程中,清理机制(垃圾回收/cleanup)会把不完整或已释放的内存块当成正常状态来处理。结果是任意指针破坏,进而为无需登录的任意代码执行打开通道。
CVE-2026-109619 则是释放后使用(UAF)叠加 OPcache。请求的某些内部状态在内存释放后没有被完全清零,工作进程处理后续请求时会复用指向过期结构的引用。OPcache 管理的是跨进程共享的预编译脚本,隔离一旦被打破,远程代码注入就有了入口。
补丁发布两天后,第三个漏洞来了
2026年10月23日,也就是初始修复发布两天后,PHP 项目与 CERT-EU 发出紧急通告,披露 CVE-2026-115560:又一个与 session 上传进度机制相关的 RCE 缺陷。10月21日的维护版本并没有覆盖它。
应急缓解办法是在 php.ini 中关闭该功能:
- 定位配置文件,路径通常是 /etc/php/8.x/fpm/php.ini 或 /etc/php.ini
- 将 session.upload_progress.enabled 设为 0
别只看 php -v
企业级 Linux 发行版打补丁时往往保留原始包版本号,所以版本号本身不能作为判断依据。审计要落到包管理器层面:
- Debian / Ubuntu:dpkg -l | grep -E "php.*(fpm|common|cli)"
- RHEL / CentOS / AlmaLinux:rpm -qa | grep -E "php.*(fpm|common|cli)"
升级命令按发行版区分:Debian / Ubuntu 用 sudo apt update && sudo apt install --only-upgrade php*;RHEL / AlmaLinux 用 sudo dnf upgrade php\*。升级之后必须重启守护进程,例如 sudo systemctl restart php8.3-fpm(按实际启用版本调整),以及 sudo systemctl restart nginx 或 apache2。
攻防两端的时间窗都在压缩
PHP2Shell 这个案例说明,AI 已经同时改变了攻击性安全研究和防御性安全研究的节奏。一方面,模型能快速分析高复杂度代码中的交叉依赖,做模糊测试和语义推理;另一方面,从漏洞公布到自动化利用工具出现,中间的间隔被大幅压缩。
对防守方来说,这意味着三件事得同时做:持续掌握资产可见性、采取更激进的更新姿态、在主机层面做行为检测。靠"等官方补丁再说"的节奏,已经跟不上漏洞披露的速度了。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.