PHP2Shell 会影响我的 Mac 吗?如何查看 Mac 上有没有装 PHP
只有 Mac 上装了 PHP,PHP2Shell 才会影响到它。PHP 手册说,从 macOS 12 Monterey 开始,macOS 就不再自带 PHP。大多数人的 Mac 上,除非你自己或你装的某个工具加了 PHP,否则是没有的。在终端里一分钟以内就能查清楚。
简要回答
PHP 官方 2026 年 10 月 21 日的公告涉及两个高危漏洞 CVE-2026-109618 和 CVE-2026-109619,影响处理网页请求的 PHP。PHP 手册说,macOS 12 Monterey 起不再自带 PHP。打开终端,输入 php -v。如果显示了版本号,就按当初安装的方式把它更新到修复版本。
macOS 自带 PHP 吗?
根据 PHP 手册,较新的版本不带。手册说,PHP 曾随 macOS 10 和 11 一起提供,但从 macOS 12 Monterey 起的版本不再包含;在较新的版本上安装,需要用第三方提供的软件包,或者从源码编译。
我们查过的苹果官方发行说明里没有提到 PHP。macOS Catalina 10.15 的发行说明只说,为了兼容性附带了 Python、Ruby、Perl 等脚本语言运行环境,以后的版本默认不再包含。所以这里以 PHP 手册为准,最可靠的还是在自己的 Mac 上查一下。
怎么查看 Mac 上有没有装 PHP?
用终端,按 PHP 手册的方法。手册的命令行文档说,在命令行运行 php -v 便能得知 PHP 是 CLI 版还是 CGI 版;命令行选项页面的示例也显示,-v 会输出 PHP 的版本号。如果返回了版本号,说明装了 PHP,可以和修复版本对照。
- 在“访达”中打开“/应用程序/实用工具”文件夹,然后连按“终端”。这是苹果终端使用手册里的打开方式。
- 输入
php -v,按 Return 键。 - 看第一行。它以“PHP”和版本号开头,例如 PHP 8.3.36。
- 和如何查看网站的 PHP 版本里的修复版本表对照。同一分支里比修复版本旧的,就需要更新。PHP 8.1 及更早版本已经不再获得 PHP 官方的更新。
如果你在 Mac 上还用 PHP-FPM 跑本地网站,国家互联网应急中心(CNCERT)的公告提醒,命令行和网站服务器可能运行不同的 PHP 版本,可以再用 php-fpm -v 查一下网站用的版本。
哪些人的 Mac 可能装了 PHP?
主要是做网站或测试网站的人。PHP 手册的 macOS 页面介绍了两种安装途径:用第三方软件包,或者从源码编译。它把 Homebrew(brew install php)列为简便的方法,另外还列了 MacPorts 和 Fink。
符合下面任何一条,你的 Mac 也可能有 PHP:
- 你在 Mac 上开发或测试 PHP 网站,为此装了 PHP
- 你装过自带 PHP 的本地服务器工具。新加坡网络安全局(CSA)建议组织检查服务器上是否装了 PHP,包括第三方应用或组件用到的 PHP,Mac 上的应用也是同样的道理
- 你用过 PHP 的内置网页服务器(
php -S)。PHP 手册说它是为辅助应用开发设计的,不适合用于生产环境,也不应在公共网络上使用
如果一条都不符合,php -v 也能帮你确认。
Mac 上的 PHP 真的有风险吗?
要看你怎么用。PHP 公告说,有风险的是所有处理网页请求的 PHP,并列出了 PHP-FPM、Apache 的 mod_php、php-cgi、FrankenPHP 和 LiteSpeed。其中 mod_php 风险最高,公告说已经有攻击演示,未经身份验证的请求在任何应用代码运行之前就能触发攻击。
公告没有提到只在命令行使用的 PHP,所以我们没法告诉你这种用法是安全的。新加坡 CSA 说这些漏洞影响所有版本的 PHP,建议立即更新到最新版本。对 Mac 来说,更新也是最简单的办法。
关于是否已被利用,截至 2026 年 10 月 23 日:美国 CISA 10 月 21 日的警报(10 月 23 日修订)说,截至发布时,它没有观察到这些漏洞在实际环境中被成功利用。CNCERT 在 10 月 22 日说,漏洞技术细节与 PoC 已广泛传播。
Mac 上的 PHP 怎么更新?
怎么装的就怎么更新。PHP 公告要求更新到修复版本,并说源码可以在 php.net 的下载页面获取。用包管理器装的,就用那个包管理器更新。如果 PHP 是某个本地服务器应用自带的,就更新那个应用,或者去开发者网站看有没有带修复版 PHP 的新版本。
改设置不等于修复。公告说,它列出的措施只能减少特定攻击路径的暴露,并不能让安装变得安全。
如果你用的是 PHP 8.1 或更早版本,公告说 PHP 官方已经不再更新这些版本,建议升级到受支持的版本。PHP 安全团队确实为 7.4、8.0 和 8.1 发布了最小化的源码补丁,那是给从源码编译 PHP 的人用的。
更新之后,再运行一次 php -v,确认版本号变了。
在 Mac 上浏览网页会运行 PHP 吗?
不会。PHP 手册解释说,PHP 代码在服务器上执行,服务器再把生成的 HTML 发给你的浏览器。浏览器收到的是结果,看不到 PHP 代码。所以浏览用 PHP 做的网站,并不会在你的 Mac 上运行 PHP,PHP2Shell 是网站服务器的问题,不是你笔记本电脑的问题。
不过,被黑的网站仍可能用别的方式伤害访客,比如假的登录页面或有害的下载。这方面见打开被黑的网站会不会中招。
Failshot 能做什么
Failshot 是 Mac 的“第二层”设备安全(second layer device security)。你的密码是第一层,Failshot 是密码之后的那一层,用在你不在电脑前、有人用密码解锁了你的 Mac 的时候。
Failshot 开启时,它会给解锁你 Mac 的人拍照,使用 Pro 时还会接着录一段 5 秒的视频,它的窗口会告诉解锁的人这次解锁被拍下了。使用 Pro 时打开邮件提醒,有一次解锁你没有确认是自己、Failshot PIN 或答案输错了,或者 Failshot 开启期间它的摄像头权限被关掉,Failshot 都会给你发邮件。关闭 Failshot,或从它的菜单里退出,需要 Touch ID 或你的 Failshot PIN 和答案,永远不用你的 Mac 密码。
Failshot 可以在 macOS 14 或更高版本的 Mac 上免费下载。免费使用。Pro 加上视频、电子邮件提醒和加密保险库。在 failshot.app 可以免费试用 Failshot Pro 7 天:注册时绑定银行卡,除非你取消,否则在第 8 天扣费。iPhone、Android 和 Windows 版即将推出。应用目前只有英文版。
更多问题
更新 macOS 能把 PHP 一起更新吗?
PHP 手册说,macOS 12 Monterey 起不再自带 PHP,所以这些版本上的 PHP 都是另外装的,要按当初安装的方式更新。macOS 还是要照常更新,但别指望它会帮你更新包管理器或本地服务器应用里的 PHP。
我的 Mac 是 macOS Big Sur 或更早的版本,有 PHP 吗?
可能有。PHP 手册说,PHP 曾随 macOS 10 和 11 一起提供。在终端里运行 php -v,看有没有返回版本号,有的话按上面的步骤对照修复版本。
10 月 21 日之后还有别的 PHP 问题吗?
有一个,是另外的、发生可能性小得多的问题 CVE-2026-115560,PHP 官方在 10 月 23 日公布。详见PHP 漏洞 PHP2Shell 解读。
来源
- Security advisory: Critical remote code execution vulnerabilities, update now(2026 年 10 月 21 日)及 informational advisory(2026 年 10 月 23 日), PHP
- macOS 系统下的安装, PHP 手册
- 在 MacOS 上使用第三方包安装, PHP 手册
- PHP 的命令行模式, PHP 手册
- Command line options, PHP Manual
- Built-in web server, PHP Manual
- Introduction: what is PHP, PHP Manual
- macOS Catalina 10.15 Release Notes, Apple Developer
- 在 Mac 上打开或退出“终端”, Apple 支持
- 关于PHP远程代码执行漏洞分析及修复建议的安全公告, 国家互联网应急中心 CNCERT
- Critical Vulnerabilities in PHP (PHP2Shell), Cyber Security Agency of Singapore
- Critical vulnerabilities in PHP require immediate patching, CISA