PHP 8.3.36 不修复文件包含漏洞(LFI/RFI),因其属应用层逻辑缺陷,需通过代码审计、白名单校验、禁用 allow_url_include 等方式防御;它仅修复两个内核级 RCE 漏洞(CVE-2026-109618/CVE-2026-109619)。

不能。PHP 8.3 升级版本(包括最新版 8.3.36)不解决文件包含漏洞(LFI/RFI)。
文件包含漏洞是应用层逻辑缺陷,不是 PHP 解释器自身的安全问题。它源于开发者在代码中直接拼接用户输入(如 $_GET['page'])到 include()、require() 等函数中,而未做校验或白名单限制。无论你用 PHP 7.4、8.2、8.3 还是 8.5,只要代码存在路径可控+无过滤,漏洞就存在。
PHP 8.3.36 修复的是两个内核级远程代码执行漏洞(CVE-2026-109618 和 CVE-2026-109619),它们与内存管理、请求生命周期和全局状态残留有关,影响所有 Web 请求入口(如 PHP-FPM、mod_php),且无需业务代码配合即可触发。
而文件包含漏洞:
修复 Core bailout 状态损坏安全问题,以及 BZ2、DOM、PDO、Opcache/JIT 内存与执行错误,改进 Unicode 字素处理、URL 解析、TLS 流状态、信号分发及会话错误处理。
立即学习“PHP免费学习笔记(深入)”;
- 需要具体业务代码中存在可被控制的包含语句
- 不依赖 PHP 版本特性,只依赖输入是否被信任
- 修复方式是重构代码(如用白名单映射、禁用动态包含)、加固 php.ini(如关闭
allow_url_include)、启用 open_basedir 等
所以:
- ✅ 升级到 PHP 8.3.36 是必须的——为堵住高危 RCE 内核漏洞
- ❌ 它不会让
include($_GET['f'])突然变安全
真正防御文件包含,得看这几件事:
- 检查所有
include/require调用,确认路径是否完全静态或经过强校验 - 禁用危险配置:
allow_url_include = Off、allow_url_fopen = Off(除非明确需要) - 使用白名单机制替代字符串拼接,例如
['home' => 'pages/home.php', 'about' => 'pages/about.php'] - 避免在生产环境暴露错误信息(
display_errors = Off),防止路径泄露辅助攻击
一句话:内核漏洞靠升级,逻辑漏洞靠审计。


















