旧版PHP的PHP2Shell漏洞修复
PHP2Shell漏洞这次可以引起轩然大波,很多网站直接关停维护。
但是官方仅发布了8.2及以上版本的更新,对于7.4~8.1版本仅有源码补丁,对于以下版本则什么都没有。
但是还有很多网站还是使用旧版PHP,特别是一些老旧的论坛程序,早就停止开发支持了,根本没有可能更新了。
不过开源的好处就是,即使官方不支持,第三方也可以提供更新。
商业支持
Freexian提供了对PHP的长期支持,如果是商业网站,可以使用他们的服务来获得更新。
个人使用
如果是个人使用者,可以使用Ondřej Surý大佬提供的包。这位大佬是Debian的PHP包的打包者,可以说Ubuntu和Debian下的PHP生态少不了他的功劳。可以向他捐款来支持他的工作。
目前修复了漏洞的旧版PHP版本号是:5.6.40-105、7.0.33-92、7.1.33-80、7.2.34-66、7.3.33-35、7.4.33-31、8.0.30-25、8.1.34-9。
Ubuntu 24.04/22.04 LTS版本
对于Ubuntu 24.04/22.04 LTS(Noble/Jammy),可以直接添加PPA源(每行一条命令,依次执行):
sudo add-apt-repository ppa:ondrej/php
sudo apt update
然后安装对应版本的包即可(如PHP 5.6的FPM包就是php5.6-fpm),使用起来和官方包无异(包括配置文件位置等)。
Debian及其他Ubuntu版本
对于Debian及其他Ubuntu版本,可以通过添加大佬的源(https://packages.sury.org/php/)来安装。大佬已经在README.txt里给出添加方法了(每行一条命令,依次执行):
sudo apt-get update
sudo apt-get -y install lsb-release ca-certificates curl
sudo curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/debsuryorg-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt-get update
其中第五条命令中的$(lsb_release -sc)是获取当前的发行版代号,目前只支持Debian 13(trixie)、12(bookworm)、11(bullseye),以及Ubuntu 22.04(jammy)、24.04(noble)、26.04(resolute)。对于其他兼容Debian包的发行版,可以试试将$(lsb_release -sc)改成任一Debian发行版代号试试,对于其他Ubuntu发行版,则可以试试最近Ubuntu发行版代号。这个源支持amd64、arm64、armhf、i386架构。
最后
这次又是一次被AI查出严重的事件,之前OpenSSL、WordPress等广泛使用的软件都爆出过。以后AI会让软件漏洞的查找更加方便,提高程序员的工作效率。但同时,黑客们也在利用AI来攻破软件安全防线,这次PHP也是因为漏洞被提前泄露,才引起各大网站紧急维护的。AI的大发展,使得软件安全进入到了全新的时代。但AI终究是工具,作恶的永远是人而不是工具,像Anthropic那样危言耸听,要求限制AI发展的,我看到的只是满满的商业盘算。
