2026年10月22日 PHP漏洞临时处理

一、最近的 PHP 漏洞是什么?

CVE-2026-109618

严重

2026 年 10 月 21 日发布

内存耗尽处理漏洞,可导致远程代码执行。

攻击者可能通过特制 HTTP 请求触发 PHP 内存处理异常,进而执行服务器上的恶意代码。

CVE-2026-109619

严重

2026 年 10 月 21 日发布

过期内存状态漏洞,可导致远程代码执行。

PHP 工作进程可能继续使用前一个请求遗留的无效状态,攻击者在特定条件下可以利用该问题执行恶意代码。

官方已经为受支持的版本发布修复版:

|---------|--------|
| PHP 分支 | 修复版本 |
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |

二、PHP 怎么修复?按优先级处理

方案一:升级 PHP(推荐,彻底解决的方向)

如果这是运行多年的老项目,不建议直接将线上 PHP替换成 PHP 8.x。旧项目可能存在语法、函数、数据库驱动和第三方扩展兼容性问题。

建议按以下步骤实施:

  1. 备份网站代码、数据库、php.ini、Apache/Nginx 配置和扩展清单。

  2. 在测试环境部署 PHP 8.4 或 8.5 的修复版本,尽可能与旧环境并行运行。

  3. 检查旧代码的兼容问题,测试登录、数据库查询、文件上传、支付、定时任务等功能。

  4. 测试通过后切换线上 PHP 运行环境,并确认 Web 实际使用的版本已经升级。

  5. 完成漏洞扫描和日志检查。

我更建议把 PHP 8.4.27 或更高的 8.4 安全更新版作为老项目的迁移目标之一;PHP 8.5 也可以,但具体取决于项目及扩展的兼容情况。不要把已经停止支持的 PHP 7.4、8.0 当作最终安全修复版本。

方案二:短期不能升级,先做临时防护

以下措施用于降低风险,不能代替升级 PHP。

|----------|--------------------------------------------------------------------------|
| 处理措施 | 具体做法 |
| 限制公网访问 | 对后台、管理接口优先设置 IP 白名单、VPN 或访问控制 |
| 限制上传请求 | 在 Nginx/Apache 入口限制请求体大小;如果业务不使用文件上传,可考虑直接拦截 multipart 请求 |
| 关闭上传进度功能 | 在适用环境的 php.ini 管理配置中设置 session.upload_progress.enabled = Off,然后重启 PHP 服务 |
| 增加前端防护 | 使用 WAF、请求频率限制和异常请求拦截 |
| 排查入侵情况 | 检查近期新增的 PHP 文件、异常文件修改、可疑上传和异常请求日志 |

PHP 官方针对最新漏洞明确指出:禁用 session.upload_progress 只能缓解其中一条利用路径,不是完整修复。官方对内存耗尽漏洞还提出了 memory_limit=-1 这一临时配置缓解措施,但它会取消 PHP 自身的内存限制,可能导致内存消耗失控,不建议未经评估就直接在生产环境设置。

如果网站正在处理敏感业务、无法及时升级且直接暴露在公网,优先临时限制外部访问,必要时将网站隔离,直至完成修复。

三、处理方案

一、修改php配置

/usr/local/php/etc/php-fpm.conf(找到自己的php-fpm.conf的位置)
复制代码
[www]
listen = /tmp/php-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0660

; 临时缓解措施:关闭 Session 上传进度功能
php_admin_flag[session.upload_progress.enabled] = off

两处改动分别是:

|--------------------|------------------------------------------------------------|
| 原配置 | 修改后 |
| listen.mode = 0666 | listen.mode = 0660 |
| 没有上传进度限制 | 增加 php_admin_flagsession.upload_progress.enabled = off |

/usr/local/php/etc/php.ini (找到自己的php.ini的位置)
复制代码
调整下面四个的参数

session.upload_progress.enabled = Off

memory_limit = 128M
post_max_size = 8M
upload_max_filesize = 4M

重启php命令

复制代码
重新加载(替换成自己的命令)
/etc/init.d/php-fpm reload 
重新启动(替换成自己的命令)
/etc/init.d/php-fpm restart

nginx

调整的代码
复制代码
# 安全加固:该站点不需要大文件上传      这个可以配置在nginx的http模块里面
    # 无大文件上传需求的示例
    client_max_body_size 8m;
      # 限制客户端发送请求头和请求体时的空闲等待
    client_header_timeout 15s;
    client_body_timeout 30s;
    
    #如果网站不需要上传文件 该网站不接受 multipart 文件上传   这个只能配置在server模块里面
if ($http_content_type ~* "multipart/form-data") {
    return 403;
}
重启命令
复制代码
检查nginx配置文件(替换自己的命令)
/usr/local/nginx/sbin/nginx -t
重新加载(替换自己的命令)
/usr/local/nginx/sbin/nginx -s reload
重启
/etc/init.d/nginx restart
相关推荐
Aurorar0rua1 小时前
CS50 x 2024 Notes Python - 02
开发语言·python·学习方法
zyseo81 小时前
谷歌SEO 网站迁移 301 映射脚本:旧站 URL 自动匹配新站结构
开发语言·python
清水白石0081 小时前
React Native与Flutter长期维护成本对比
开发语言·数据库
麦序子1 小时前
用 Python + python-docx 批量生成带表格样式的装修报价单 Word 文档(含合计公式)
开发语言·python·自然语言处理·word·python3.11
凯丨1 小时前
PHP2Shell(CVE-2026-109618 / CVE-2026-109619)——配置层缓解方案
php
1-1=01 小时前
Python PyCharm
开发语言·python·pycharm
牛肉胡辣汤2 小时前
Blender + Three.js 开发讲解:从 .blend 到能转的产品页
开发语言·javascript·blender
惊讶的猫2 小时前
Spring AOP
java·开发语言
ii_best2 小时前
按键精灵手机助手 v5.2.1 实测:inputText 逐字延时 + 调试面板多行复制,安卓脚本开发的两个输入痛点一次解决
android·开发语言·智能手机·自动化·ai编程·按键精灵