内容提要
OpenAI公开了PHP近年最大漏洞“PHP2Schell”,因在官方未准备好时披露而引发小站长不满。PHP官方已推送临时补丁,后续版本将彻底修复。Ubuntu用户可通过apt升级php8.5相关包,并重启php8.5-fpm及nginx或apache2;升级后版本号可能不变,若包含8.5.x-0ubuntu0.24.04.13即表示已修复,且必须重启服务。
延伸解读
版本号不变不等于没修复
文章特别提醒,Ubuntu 通过 apt 推送补丁时可能不会改变 php -v 显示的版本号。判断是否修复的关键是升级信息中是否出现类似 8.5.x-0ubuntu0.24.04.13 的包版本标识,而不是上游 PHP 版本号。因此升级后不要只看 php -v 就断定失败,应检查 apt 输出或已安装包版本,避免误判而重复操作。
升级后必须重启服务才生效
文章强调,仅完成 apt 升级还不够,必须重启 php8.5-fpm 以及 nginx 或 apache2,否则运行中的实例仍是旧版本。这意味着补丁文件虽已落盘,但未加载到内存中的进程。对生产环境而言,重启顺序和时机需结合业务安排,避免因服务中断造成额外影响,不能把升级命令执行完就视为漏洞已修复。
临时补丁的局限与后续关注
文章指出,PHP 官方承认此次推送的是临时解决方案,后续新版本才会彻底解决。因此 Ubuntu 用户按文中步骤修复后,仍应关注 PHP 官方和 Ubuntu 的后续更新,不能认为一次升级就永久解决。同时,文章提到漏洞在官方未准备好时被公开,引发小站长不满,这提醒读者对漏洞披露节奏和自身应急能力保持关注。
Q&A
PHP2Schell漏洞是什么?为什么最近引起关注?
PHP2Schell漏洞是近年来PHP发现的最大漏洞,由OpenAI在PHP官方未准备好时公开披露,引发小站长不满。PHP官方已推送临时补丁,后续版本将彻底修复。
Ubuntu系统上如何修复PHP2Schell漏洞?
使用以下命令:sudo apt update;sudo apt install --only-upgrade 'php8.5*';然后重启php8.5-fpm和nginx(或apache2)。
升级后PHP版本号没变,怎么确认漏洞已修复?
执行php -v,如果升级信息中包含类似8.5.x-0ubuntu0.24.04.13的版本号,表示已使用Ubuntu官方修复版本,无需追求上游版本号变化。
修复后为什么必须重启php-fpm和web服务器?
因为升级后如果不重启php-fpm以及apache2或nginx,运行实例还是老版本实例,漏洞可能仍然存在。
PHP官方对PHP2Schell漏洞的补丁是永久修复吗?
不是,官方承认当前推送的补丁是临时解决方案,后续新版本中才会彻底解决。
OpenAI披露PHP2Schell漏洞为什么引发争议?
因为OpenAI在PHP官方没有准备好的情况下就公布了漏洞,没有顾及小网站的利益,引发小站长不满。