使用 php -v 命令查看当前 php 版本,若版本低于 8.0.2、7.4.13 或 7.3.25,则存在 php 2shell(cve-2020-7069)漏洞风险。在 thinkphp 8 站点中,该漏洞主要影响底层 php 环境而非框架本身,因此需通过命令行检查服务器运行的 php 版本以确认是否受影响。

如何检查服务器当前的 PHP 版本?
在 Linux 或 Windows 服务器上,直接运行 php -v 即可输出当前安装的 PHP 版本信息。ThinkPHP 8 要求 PHP 版本至少为 8.0.0,但若实际运行的是旧版 PHP(如 7.4.x),则可能同时面临兼容性与安全问题。重点在于识别版本号是否落在 CVE-2020-7069 的受影响区间内。

php -v
预期输出示例:
PHP 7.4.12 (cli) (built: Oct 29 2020 12:30:00) ( ZTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
若输出中包含 7.4.12、7.3.24 或 8.0.1 等版本,则属于受影响范围。建议升级至 7.4.13+、7.3.25+ 或 8.0.2+ 以修复漏洞。
哪些 PHP 版本具体受 CVE-2020-7069 影响?
CVE-2020-7069 影响以下 PHP 版本:8.0.0–8.0.1、7.4.0–7.4.12、7.3.0–7.3.24、7.2.0–7.2.33、7.1.0–7.1.33、7.0.0–7.0.33。这些版本在处理特定编码的 multipart/form-data 请求时,可能因缓冲区处理缺陷导致远程代码执行。ThinkPHP 8 虽不直接引入此漏洞,但若部署在低版本 PHP 环境中,仍会暴露于该风险之下。
修复 Core bailout 状态损坏安全问题,以及 BZ2、DOM、PDO、Opcache/JIT 内存与执行错误,改进 Unicode 字素处理、URL 解析、TLS 流状态、信号分发及会话错误处理。

php -v | grep -oP 'PHP \K[\d.]+'
可通过管道过滤提取纯版本号,便于脚本自动化判断。例如,若提取结果为 “7.4.12”,则明确处于受影响列表。结合官方补丁说明,只需将 PHP 升级至安全版本即可消除威胁,无需修改 ThinkPHP 代码。
如果 php -v 显示版本为 8.0.1,是否一定存在漏洞?
是的,php -v 显示 8.0.1 表示当前 PHP 环境处于 CVE-2020-7069 的受影响范围内。该版本未包含对 multipart/form-data 解析逻辑的安全修复,攻击者可构造恶意请求触发栈溢出,进而执行任意代码。即使 ThinkPHP 8 本身无漏洞,底层 PHP 的这一缺陷仍可导致整个应用被入侵。必须立即升级 PHP 至 8.0.2 或更高版本,并验证升级后 php -v 输出不再包含 8.0.1。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










