预警通知|PHP漏洞风险提示与应对措施
预警级别:高。在二零二六年十月二十一日这一天的时候, 由 PHP 官方方面对两个高危漏洞进行了修复操作, 这两个漏洞的名称分别是 CVE-2026-109618 和 CVE-2026-109619。这两个漏洞被合称为所谓的 PHP2Shell。
它们都可以允许攻击者在没有经过授权的情况下远程执行代码功能, 而且从目前的情况来看, 已经有人在实际环境中对这些漏洞发起了利用活动了。
对于使用了PHP 5.4及更高版本的那些网站还有服务器来讲, 请参照下面这个关于PHP漏洞的风险提示里面所写出的内容以及应对办法去进行赶紧处理, 因为服务器的安全问题真的耽误不起。
一、影响范围
- 从PHP 5.4开始, 一直到现在能够用到的最新发布的版本, 也就是PHP 8.5.11为止的所有已经存在的版本。
- 像Apache里的mod_php这种做法, 还有PHP-FPM, 以及php-cgi, 再加上LiteSpeed、FrankenPHP等各种各样的运行方式。
- WordPress、Discuz、ThinkPHP 这些应用程序本身是否存在安全性方面的问题, 对于是否具备可被利用的漏洞这一点来说, 并不是决定性的因素, 关键问题在于底层引擎那里存在着的漏洞。
二、风险说明
这两个漏洞, 一个是当内存耗尽的时候会出现状态损坏的情况, 另一个则是存在跨请求的过期状态问题。把它们组合在一起的话, 能够形成一个完整的远程代码执行链条, 而且攻击者根本不需要登录就能完成这一步。
一旦攻击者拿到了Shell权限, 他们就可以读写文件, 植入后门程序, 或者是窃取数据库里的数据。在补丁还没发布之前, 就已经有人开始探测了。而在补丁发布后的十几分钟之内, 就立刻就出现了被利用的流量迹象。这就属于那种正在被实际利用的危险级别, 绝对不是什么只存在于纸面上的理论风险。
三、处置措施
- 请立即进行升级操作:针对 8.5 这个分支, 需要升级到 8.5.12 版本;对于 8.4, 需要升级到 8.4.27 版本;对于 8.3, 需要升级到 8.3.36 版本;对于 8.2, 需要升级到 8.2.35 版本;至于从 5.4 到 8.1 这些版本范围, 目前没有任何官方提供的补丁, 所以需要制定相关的迁移计划。
- 重启生效:需要重启 PHP-FPM, 还需要重启 Web 服务, 容器要进行重建镜像, 最后用 phpinfo 来核对实际加载版本, 也可以用面板来核对。
- 如果目前没法马上就把东西升级的话, 那么可以把session.upload_progress.enabled这个设置改成等于零的状态值, 也就是写成
session.upload_progress.enabled = 0这个样子, 然后再去部署一些专门用来拦截各种规则的网络安全防护设备, 同时呢, 还要把那个PHP-FPM所使用的那个9000端口的对外暴露情况给限制住, 不让它随便就能被外人连上。 - 入侵排查:重新去查看 10 月 17 日以后的那些访问日志, 看一看这个 Web 目录里面是不是增加了新的 PHP 文件, 看看有哪些异常的进程存在, 还有没有发生向外连接的异常情况。要是发现有后门程序的话, 要先隔离起来进行取证, 然后再彻底清理掉, 并且更换数据库的密码、后台管理系统的密码以及 SSH 的密码。
- 持续关注:需要时刻注意到 PHP 官方后续所发布的关于安全性方面的通知。在完成系统软件的版本升级工作之后, 依然要继续做好对应版本号的更新操作, 这一点是绝对不能忽视的。
四、自查清单
- php -v 与站点实际运行版本是否一致;
- 是否已重启并确认新版本生效;
- 从 10 月 17 日往后这个范围内, 有没有发现不正常的文件内容, 或者运行的程序进程, 以及外部的网络连接情况。
- 请确定备份的内容是不是完全的, 同时还要保证这些备分的数据不能放到网站的根文件目录里面去。
- 你要去弄清楚面板到底是不是最新版, 插件到底是不是最新版, 主题到底是不是最新版。
面板升级可以看宝塔面板漏洞升级,被入侵后的排查流程见网站被挂马的原因排查。本文信息以 PHP 官方公告为准,执行前请再次核对版本号。
常见问题
这次预警和以前的 PHP 漏洞有什么不同?
这个漏洞存在于 PHP 引擎内部, 不需要进行登录操作就可以利用。在补丁发布之前, 它就已经被探测到了。在补丁发布之后的短短十几分钟内, 就遭到了攻击和利用。其影响范围和紧迫性都高于普通的应用层漏洞。
升级 PHP 会不会导致网站打不开?
在大家进行跨度很大的版本升级的时候, 很有可能会出现插件或者主题兼容方面的问题, 因此建议大家先把数据做好备份工作, 接着要在测试环境里面去验证一下看看行不行, 只有在确认没问题之后再去切换生产环境, 如果是处于同一个分支内的小版本升级的话, 通常情况下风险是非常低的。
没有技术团队怎么处理?
你要去联系主机商或者运维服务商去确认 PHP 的版本, 并且进行升级。与此同时, 要按照要求关闭 session.upload_progress, 以此作为临时缓解的办法。千万不要等到网站出现了异常再去处理这个问题, 这种做法是不好的。