php最新的漏洞,如果我的php版本是7.2怎么修复最好?
下面是你需要的完整情况和修复方案。
最新漏洞:PHP2Shell(2026年10月21日披露)
目前最紧急的是 CVE-2026-109618 和 CVE-2026-109619,合称 PHP2Shell,CVSS 9.2 分,未认证远程代码执行。
| 项目 | 详情 |
|---|---|
| 影响范围 | PHP 5.4 起的几乎所有版本,7.2 完全在影响范围内 |
| 触发方式 | 攻击者只需发送特制 HTTP 请求(文件上传 / multipart / 会话上传进度),无需登录、无需框架介入 |
| 官方修复版本 | 8.5.12、8.4.27、8.3.36、8.2.35 |
| 7.2 的处境 | PHP 官方 完全不提供修复(7.2 已于 2020-11-30 EOL),只能靠发行版扩展支持(ESM)回移补丁 |
PHP 7.2 的最佳修复路径
<html style="margin:0;padding:0;">
<title>PHP 7.2 修复 PHP2Shell 漏洞路径</title>
<div style="width:100%;box-sizing:border-box;font-family:-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;padding:16px;background:#fafafa;">
<div style="text-align:center;margin-bottom:16px;">
<div style="font-size:20px;font-weight:700;color:#c0392b;">PHP 7.2 漏洞修复决策路径</div>
<div style="font-size:13px;color:#666;margin-top:4px;">目标:消除 CVE-2026-109618 / 19(未认证 RCE)</div>
</div>
<!-- 第一层:立即缓解 -->
<div style="background:#fff;border-left:4px solid #e74c3c;border-radius:6px;padding:12px 16px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,0.08);">
<div style="font-size:15px;font-weight:700;color:#c0392b;">第 0 步:立即缓解(今天就做,阻止被利用)</div>
<div style="font-size:13px;color:#333;margin-top:8px;line-height:1.8;">
<b>① PHP-FPM 配置</b>(必须服务器级设置,不能用 ini_set / .user.ini,因为漏洞在代码运行前触发):<br>
<code style="background:#f5f5f5;padding:2px 6px;border-radius:3px;">session.upload_progress.enabled = 0</code><br>
<code style="background:#f5f5f5;padding:2px 6px;border-radius:3px;">memory_limit = -1</code>(PHP 官方针对 CVE-2026-109618 的临时建议)<br>
<code style="background:#f5f5f5;padding:2px 6px;border-radius:3px;">post_max_size = 8M</code> <code style="background:#f5f5f5;padding:2px 6px;border-radius:3px;">upload_max_filesize = 2M</code><br>
<b>② Nginx 阻断</b>:除真正需要上传的路由外,全部 multipart 请求返回 403<br>
<b>③</b> 检查 fastcgi_param 是否传入 PHP_VALUE(CVE-2026-109619 的另一条触发路径),没有就删掉<br>
<b>④</b> 修改后 <b>重启</b> php7.2-fpm(不是 reload)
</div>
</div>
<!-- 箭头 -->
<div style="text-align:center;color:#999;font-size:18px;margin-bottom:8px;">↓</div>
<!-- 第二层:短期补丁 -->
<div style="background:#fff;border-left:4px solid #e67e22;border-radius:6px;padding:12px 16px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,0.08);">
<div style="font-size:15px;font-weight:700;color:#e67e22;">第 1 步:打正式补丁(按你的发行版选)</div>
<div style="font-size:13px;color:#333;margin-top:8px;line-height:1.8;">
<table style="width:100%;border-collapse:collapse;font-size:13px;">
<tr style="background:#fef9f3;">
<th style="text-align:left;padding:6px 8px;border:1px solid #eee;">发行版</th>
<th style="text-align:left;padding:6px 8px;border:1px solid #eee;">补丁版本</th>
<th style="text-align:left;padding:6px 8px;border:1px solid #eee;">获取方式</th>
</tr>
<tr>
<td style="padding:6px 8px;border:1px solid #eee;">Ubuntu 18.04</td>
<td style="padding:6px 8px;border:1px solid #eee;">7.2.24-0ubuntu0.18.04.17+esm14</td>
<td style="padding:6px 8px;border:1px solid #eee;">Ubuntu Pro(esm-infra,Infra-only 档即可,<b>付费</b>)</td>
</tr>
<tr>
<td style="padding:6px 8px;border:1px solid #eee;">AlmaLinux 8</td>
<td style="padding:6px 8px;border:1px solid #eee;">php-7.2.24-1.alma.1</td>
<td style="padding:6px 8px;border:1px solid #eee;">官方仓库直接更新,<b>免费</b>(最省事)</td>
</tr>
<tr>
<td style="padding:6px 8px;border:1px solid #eee;">Debian 10/11</td>
<td style="padding:6px 8px;border:1px solid #eee;">暂无</td>
<td style="padding:6px 8px;border:1px solid #eee;">Debian 免费安全追踪器无补丁,需自行编译或迁移</td>
</tr>
</table>
</div>
</div>
<div style="text-align:center;color:#999;font-size:18px;margin-bottom:8px;">↓</div>
<!-- 第三层:长期方案 -->
<div style="background:#fff;border-left:4px solid #27ae60;border-radius:6px;padding:12px 16px;box-shadow:0 1px 3px rgba(0,0,0,0.08);">
<div style="font-size:15px;font-weight:700;color:#27ae60;">第 2 步:根本解决(1~3 个月内完成)</div>
<div style="font-size:13px;color:#333;margin-top:8px;line-height:1.8;">
<b>升级到受支持的 PHP 8.x</b>(推荐 8.3 或 8.4)<br>
· PHP 7.2 已 EOL 近 6 年,今天的补丁只是"买时间",下一个引擎漏洞仍然没有官方修复<br>
· 升级前先做兼容性扫描(Rector / PHPCompatibility 可自动检测不兼容代码)<br>
· 如果应用老旧无法升级,考虑用 Docker 跑受支持版本,或迁移到 AlmaLinux 等仍在维护 7.2 流的发行版
</div>
</div>
</div>
</html>
具体操作建议
如果你现在就能改服务器,按这个顺序:
- 先加临时配置 — 在
/etc/php/7.2/fpm/conf.d/99-php2shell.ini写入上面的 4 项配置,然后systemctl restart php7.2-fpm - Nginx 加规则 — 只放行你确定需要上传的路由,其余 multipart 全部 403
- 查一下你的发行版:
php -v和apt-cache policy php7.2-common(或rpm -q php)确认包来源- Ubuntu 系:查是否能开 Ubuntu Pro ESM(付费)
- CentOS/Alma/Rocky 系:直接
yum update php72看是否有补丁
- 打补丁后验证:
php -v确认版本号带+esm或.alma.1后缀,重启 FPM,跑一遍核心业务流程(登录、上传、支付)
一个关键提醒:补丁只能防未来攻击,不能清掉已经进来的后门。因为漏洞细节 10 月 20 日就已公开,建议你顺手检查一下 PHP-FPM 运行用户的 crontab、最近修改的文件和异常进程。
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu