PHP2Shell 是 PHP 中两个严重漏洞的统称,攻击者可能在不知道任何密码的情况下在服务器上执行代码。如果您的网站运行在 WordPress 等基于 PHP 的系统上,就可能面临风险。解决办法不是更新 WordPress,而是将服务器上的 PHP 更新到 8.5.12、8.4.27、8.3.36、8.2.35 或更高版本,并请主机服务商确认。
过去两天,“PHP”占据了各大新闻。荷兰民众登录政府服务的 DigiD 一度无法使用;芬兰部分政府网站出于预防被暂时关闭;美国 FBI 和 NSA 呼吁无法打补丁的机构先将服务器下线;土耳其总统府网络安全局则启动了全国范围的扫描。
本文将在不堆砌技术细节的前提下说明发生了什么,然后一步步介绍旅游运营商如何判断网站是否受影响、今天应该做什么,以及如何为下一次做好准备。
先说基础:PHP 是什么?
PHP 是一种在许多网站背后运行的编程语言。访客打开您的网站时,负责生成页面、把联系表单变成邮件、把预订存入数据库的代码,很多都是用 PHP 写的。
即使您从没听说过它,也很可能在某处用到了它。WordPress、WooCommerce、Joomla、Drupal 以及许多现成的预订插件都运行在 PHP 上。据 FBI 称,全球约 70% 的网站使用 PHP。
发生了什么?
2026 年 10 月 20 日至 21 日,PHP 团队针对两个严重安全漏洞发布了紧急更新。它们的编号是 CVE-2026-109618 和 CVE-2026-109619,合称“PHP2Shell”,严重程度评分均为 9.2 分(满分 10 分)。
之所以严重,是因为在特定条件下,攻击者无需用户名或密码,就能通过互联网在您的服务器上执行任意代码。安全领域称之为远程代码执行(RCE)。简单来说,就是有人不用钥匙也能打开您的大门。
据 Qualys 分析,其中一个漏洞源于服务器内存不足时数据处于半初始化状态,另一个则是出错后下一位访客的请求重新读取了已释放的内存。研究人员还证明,密码、会话信息和 API 密钥等数据可能从服务器内存中泄露。
据阿纳多卢通讯社报道,这些漏洞是安全公司 Calif 在 8 月借助 AI 发现的。修复工作在保密状态下进行了约两个月,但消息在补丁发布前一天泄露给了媒体。
为什么影响这么大?
- 规模巨大:Palo Alto Networks 发现超过 2,260 万个暴露在互联网上、可能存在漏洞的系统。
- 旧版本随处可见:Qualys 的数据显示,已知版本的 PHP 安装中有 71% 使用的是已停止支持的版本,无法获得常规补丁。
- 攻击已经开始:Cloudflare 报告发现了针对这些漏洞的攻击流量,可用于利用漏洞的代码也已经流传开来。
- 修补速度慢:披露后的头 12 小时内,Qualys 追踪的 1.67 亿个安装中只有约 19.9 万个完成了更新。
这就是各国政府关闭网站的原因。在系统打上补丁之前,最安全的做法是关上攻击者可能进入的那扇门。土耳其网络安全局向公共机构发出紧急通知,并呼吁私营企业检查自己的 PHP 系统。该局表示,国家政务门户 e-Devlet 未发现影响服务的问题。
这对旅游运营商意味着什么?
攻击者进入后能做什么,取决于您的网站存储了哪些内容。最可能出现的情况包括:
- 客户数据泄露:预订表单中的姓名、电话、邮箱和护照信息。根据您和客人所在地区,GDPR、个人信息保护法等法规可能要求您进行报告。
- 密码和密钥被盗:数据库密码,以及支付服务、渠道管理系统或邮件服务的 API 密钥。
- 网站被植入恶意内容:隐藏的垃圾页面,或把访客跳转到其他网站的代码。一旦被 Google 发现,您的网站可能会带着警告显示,几个月的 SEO 成果也可能受损。
- 服务器被挪作他用:挖矿、发送垃圾邮件或攻击其他网站。
- 销售损失:如果出于预防不得不关闭网站,即使在旺季也无法接收预订。
您的网站受影响吗?先检查版本
第一步是弄清网站是否运行在 PHP 上,以及使用哪个版本。WordPress 用户可在后台的“工具 → 站点健康 → 信息 → 服务器”中查看 PHP 版本。主机控制面板(cPanel、Plesk 等)通常也会在“PHP 版本”一栏中显示。
已修复漏洞的版本如下:
- PHP 8.5:8.5.12 或更高
- PHP 8.4:8.4.27 或更高
- PHP 8.3:8.3.36 或更高
- PHP 8.2:8.2.35 或更高
- PHP 8.1 及更早版本:没有常规的官方更新。除非主机服务商应用了特别补丁,否则需要升级到更新的版本。
请注意:部分 Linux 发行版在发布修复时会保留旧的版本号。因此,版本号较低并不一定意味着网站存在漏洞。最可靠的方法是直接询问主机服务商。
今天要做的事
- 联系主机服务商并询问:“我服务器上的 PHP 是否已针对 PHP2Shell(CVE-2026-109618 和 CVE-2026-109619)完成更新?”仅回答“我们已添加防火墙规则”是不够的,请确认 PHP 本身已经更新。
- 要知道更新 WordPress 解决不了问题:漏洞不在 WordPress 中,而在其底层运行的 PHP 中。更新插件或主题、安装安全插件、开启维护模式都无法防护,因为攻击可能在 WordPress 加载之前就已执行。
- 如果您有自己的服务器(VPS):更新 PHP 软件包,然后务必重启 PHP-FPM 或 Apache。未重启的服务器会继续运行旧的、有漏洞的代码。使用 Docker 的话,请拉取新镜像并重新创建容器。
- 如果您使用的是旧版本:先在服务器之外做一次完整备份,再升级到 PHP 8.3 或 8.4。随后逐一测试首页、线路页面、联系表单和预订流程。
- 如果暂时无法打补丁:把网站放在 Cloudflare 等防火墙之后可以提供临时防护。如果有技术团队,可以应用 PHP 建议的临时设置(例如 session.upload_progress.enabled=0)。这并不是完整的解决方案,只是争取时间。
已经有人入侵了吗?需要检查的迹象
打完补丁后,最好检查一下在漏洞被修补之前是否已有人入侵:
- WordPress 中是否有您不认识的管理员账号?
- 是否出现了您没有安装过的插件?
- 存放图片的 wp-content/uploads 文件夹里是否有 .php 文件?这里不应该有任何 PHP 文件。
- 在 Google 搜索 site:您的域名.com 时,是否出现了您从未写过的页面?
- Google Search Console 的“安全问题”中是否有警告?
- 主机服务商是否发来过关于恶意软件、垃圾邮件或资源异常使用的警告?
如果发现任何一项,请让主机服务商扫描服务器,并恢复到可疑活动发生之前的干净备份。然后更改所有密码和 API 密钥:WordPress、主机、数据库、邮箱,以及支付或销售渠道的集成。如果客户数据可能已经泄露,请就您的法律义务咨询专业人士。
展望未来:长期的防范措施
PHP2Shell 不会是最后一个漏洞。真正的问题是下一次您能准备得多充分。我们建议养成以下习惯:
- 使用仍受支持的版本:停止支持的软件不会再有补丁。目前 PHP 8.3 或 8.4 是不错的选择。
- 明确更新负责人:谁在更新您的网站?多久更新一次?这需要一个清楚的答案。托管型主机或维护合同是把这件事落实为书面约定的简单方式。
- 清楚自己拥有什么:主站、旧的活动页面、测试站点、被遗忘的子域名……为每一个记录所在服务器和版本。攻击者最喜欢被遗忘的网站。
- 删除不需要的东西:删除不用的插件、主题和旧网站。每多一个组件,就多一扇可能被漏洞打开的门。
- 把网站放在防火墙之后:在新漏洞公布、尚未打补丁时,Cloudflare 这类服务就是您的第一道防线。
- 密码和密钥分开管理:不要把 API 密钥写进代码,只给每项服务必要的权限,并定期更换密钥。
- 备份存放在服务器之外,并测试恢复:从未恢复过的备份,您无法确定它是否真的可用。
- 监控网站:在线状态监控、Search Console 通知和文件变更提醒,能让您比客人更早发现问题。
- 写一份简短的应急预案:提前确定出问题时联系谁、如何临时下线网站、如何通知客户。
更大的图景:漏洞被发现得越来越快
这件事最引人注目的一点是,漏洞是在 AI 的帮助下被发现的。同样的工具也掌握在心怀恶意的人手中。今后,漏洞会被更快地发现,也会被更快地利用。
这意味着“有空再更新”的时代已经结束。对旅游运营商来说,网站不再只是一个橱窗,而是接收预订、保存客户数据的业务工具。保障它的安全,本身就是保障业务持续运转的一部分。
在 Monotim,我们使用现代化的技术基础搭建网站,不会直接受到这类服务器语言漏洞的影响。但没有任何技术能永远安全。真正的差别在于持续关注网站,并在出现问题时迅速采取行动。
如果您不确定网站是否受到 PHP2Shell 影响,或者主机服务商没有给出明确答复,我们可以一起看看。
参考资料
- PHP Announces Critical Security Release for Two Vulnerabilities (PHP2Shell), Qualys (blog.qualys.com)
- Threat Brief: Critical Vulnerabilities in PHP, Palo Alto Networks Unit 42 (unit42.paloaltonetworks.com)
- Responding to core PHP vulnerabilities CVE-2026-109618 and CVE-2026-109619, Google Cloud (cloud.google.com)
- Hundreds of websites taken offline as concern grows over two PHP vulnerabilities, The Record (therecord.media)
- Dünya çapında PHP kaynaklı güvenlik açığının giderilmesi için çok sayıda internet sitesi erişime kapatıldı, Anadolu Ajansı (aa.com.tr)
- PHP2Shell: what it is, and what to do on your WordPress site, Meow Apps (meowapps.com)
更新记录
- 最新
首次发布。