PHP 8.4 无官方文件包含漏洞,高危漏洞是CNVD-2026-41674(CVE-2026-109618)内存破坏型RCE,影响8.4.27前所有版本;所谓“文件包含”多为业务代码未校验输入所致。

PHP 8.4 本身没有官方确认的“文件包含漏洞”(如 include/require 直接导致远程代码执行的通用漏洞),当前高危漏洞是CNVD-2026-41674 / CVE-2026-109618——一个内存管理缺陷引发的远程代码执行漏洞,影响所有 8.4.27 之前的 PHP 8.4.x 版本。所谓“文件包含漏洞”很可能是误判、混淆,或是业务代码中因未校验用户输入导致的 逻辑层文件包含风险(如动态拼接路径、include($_GET['page']) 类写法),而非 PHP 解释器自身漏洞。
先确认是不是真漏洞
不要直接按“文件包含”上报。需做三步验证:
- 查真实版本:在 Web 环境下运行
phpinfo()或执行php-fpm8.4 -v(非php -v),确认实际提供网页服务的 PHP 版本; - 核对 CNVD 公告:当前 PHP 8.4 的唯一紧急漏洞是内存破坏型 RCE(CNVD-2026-41674),漏洞成因与文件操作无直接关系;
- 检查业务代码:搜索项目中是否存在未过滤的
include、require、file_get_contents、highlight_file等调用,参数是否来自$_GET、$_POST、$_REQUEST等外部输入。
如果是业务代码问题(推荐情形)
这属于开发规范缺失,整改材料应聚焦“人+流程+代码”:
修复 Core bailout 状态损坏安全问题,以及 BZ2、DOM、PDO、Opcache/JIT 内存与执行错误,改进 Unicode 字素处理、URL 解析、TLS 流状态、信号分发及会话错误处理。
- 问题描述写清楚:哪一页面、哪个参数、哪行代码、如何触发(例如:
/index.php?page=../../etc/passwd可读敏感文件); - 修复方式写具体:禁用动态路径拼接;改用白名单映射(如
$pages = ['home'=>'home.php', 'about'=>'about.php']; include $pages[$_GET['p']] ?? '404.php';);或彻底移除用户可控的文件加载逻辑; - 补充佐证:提交修复前后的代码片段对比截图、测试验证结果(尝试访问非法路径返回 404 或 500,不再输出文件内容)。
如果确实是 PHP 8.4.26 等旧版本(需立即升级)
按国家漏洞平台要求,整改材料必须体现“已修复根本原因”:
- 版本升级记录:提供
php-fpm8.4 -v升级前后输出截图,明确显示从8.4.26升至8.4.27; - 升级操作日志:含命令行记录(如
apt upgrade php8.4-fpm或编译安装步骤)、重启服务命令(systemctl restart php8.4-fpm nginx); - 验证方式:用 PoC 工具(如 CNVD 提供的检测脚本)或构造特定 HTTP 请求复测,确认响应不再异常(无崩溃、无回显、无内存报错)。
上报材料必备项
无论哪种情形,正式上报都应包含:
- 漏洞发现时间、发现人/系统(如:安全扫描平台 Wiz 报告、人工渗透测试);
- 影响资产清单:域名、IP、服务器角色(如:WordPress 前台节点)、PHP 运行模式(FPM / Apache module);
- 技术定性说明:引用 CNVD 编号或注明“属业务层不安全编码,非 PHP 内核漏洞”;
- 整改完成时间 + 责任人签字(运维/开发负责人);
- 附件:版本截图、代码修复截图、升级日志、复测结果。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










