Skip to content
网游世界
网游世界

吾生有涯,而知无涯。

  • 首页
  • PHP
    • ThinkPHP
    • FastAdmin
    • webman
    • CodeIgniter
  • JavaScript
    • jQuery
    • AdminLTE
  • Free Pascal
  • Java
    • JeeSite
    • 若依
    • ruoyi-vue-pro
  • 其它
    • 操作系统
    • 树莓派
    • 前端
    • Null
  • 关于
网游世界

吾生有涯,而知无涯。

PHP 严重漏洞:攻击者可在未经身份验证的情况下实现远程代码执行

3Vshej, 2026年10月22日 周四2026年10月22日 周四

2026 年 10 月 21 日,PHP 官方披露了两个评分高达 9.2 的严重漏洞(CVE-2026-109618 与 CVE-2026-109619),攻击者可在未经身份验证的情况下实现远程代码执行。

所有低于修复版本的 PHP 都存在风险。这包括了仍在支持周期内的 8.2、8.3、8.4、8.5 分支,以及早已停止支持的 5.x、7.x、8.0 和 8.1 分支。

修复方案

根据你的服务器环境,选择以下一种方式:

方案一:使用服务器面板提供的打包版本(最简便)

如果你使用的是宝塔面板,宝塔已应用官方补丁并打包了修复版本。你可以登录宝塔面板,进入“软件商店” → “已安装”,更新软件列表后,找到 PHP 并点击更新升级。

如果你使用的是其他面板(如 cPanel、Plesk)或云服务商,请检查其软件源中是否已提供包含补丁的更新版本。

方案二:自行应用补丁并重新编译(适合自行管理服务器的用户)

如果你自行编译 PHP,需要从 PHP 官方 Git 仓库获取针对相应分支的修复补丁,应用到源码后重新编译。PHP 官方在 GitHub 上提供了相应的修复分支。部分第三方也提供了预编译的补丁版本(如针对 Windows 或 Ubuntu 的重建包),但使用前需自行评估信任风险。

方案三:升级到受支持的 PHP 版本(根本解决)

PHP 官方为 8.2 及以上分支发布了正式的修复版本(8.2.35、8.3.36、8.4.27、8.5.12),升级后即可获得完整修复。

临时缓解措施(仅作过渡)

如果暂时无法立即升级或打补丁,PHP 官方建议将 session.upload_progress.enabled 设置为 Off。这可以阻断其中一条已确认的攻击路径(针对 CVE-2026-109619),但不能防御另一个漏洞,因此不能替代真正的补丁。

你可以尝试在 php.ini 中修改,或在网站根目录创建 .user.ini 文件并写入 session.upload_progress.enabled = Off(前提是你的主机支持 .user.ini)。修改后需重启 PHP 服务或等待其生效。

官方编号分别是 CVE-2026-109618 和 CVE-2026-109619,它们都源于 PHP 核心在处理请求时的内存管理缺陷,最终可导致未经身份验证的远程代码执行(RCE)。简单来说,攻击者不需要你的网站代码有漏洞,只要 PHP 本身存在缺陷,他们就能直接在你的服务器上执行任意命令。

🧠 漏洞一:CVE-2026-109618(内存耗尽导致的释放后使用)

这个漏洞的根源在于 PHP 处理“内存耗尽”(Out-of-Memory)错误的方式。

当 PHP 处理请求时如果内存不足,它会使用一个叫 longjmp() 的机制来紧急中止当前请求。问题在于,这个紧急中止可能发生在某些内部数据结构初始化到一半的时候。于是,这些结构体就处于一种“损坏”或“未初始化”的状态,但后续的清理流程却会照常读取或操作它们。攻击者可以故意构造请求(例如利用 multipart 表单处理)来触发内存耗尽,从而控制这块被损坏的内存,最终劫持程序执行流,运行自己的代码。

🧠 漏洞二:CVE-2026-109619(全局状态残留导致的释放后使用)

这个漏洞与 PHP 的“全局状态”有关。PHP 的 worker 进程在处理完一个请求后,会重置全局状态,准备迎接下一个请求。但在某些场景下,这个重置并不彻底,或者重置后又被意外地重新填充了。

结果就是,全局状态的某个指针可能仍然指向上一个请求已经被释放的内存。当新的请求到来时,PHP 可能会在初始化完成前就读取或依赖这个“悬空指针”,攻击者同样可以利用这一点来操控内存,实现代码执行。研究显示,这个漏洞的触发甚至不依赖于 session.upload_progress 功能,通过普通的 multipart/form-data POST 请求就可能触发底层的解析器缺陷。

⚔️ 攻击是如何进行的?

综合来看,攻击者通常会利用这两个漏洞中的一个,通过以下步骤实施攻击:

  1. 发送恶意请求:攻击者向你的服务器发送特制的 HTTP 请求。这些请求的目的不是利用你的网站应用,而是触发 PHP 引擎自身的缺陷。对于 CVE-2026-109618,请求会故意耗尽内存;对于 CVE-2026-109619,请求会试图利用残留的全局状态。
  2. 操控内存与信息泄露:在触发漏洞后,攻击者往往需要绕过 ASLR(地址空间布局随机化)等防护。公开的分析指出,攻击者可以通过分析服务器返回的 Set-Cookie 头等信息,来泄漏内存地址,从而计算出关键函数(如 zif_system)在内存中的位置。
  3. 执行任意代码:一旦获得了足够的信息并操控了内存,攻击者就能让 PHP worker 进程执行他们指定的系统命令。由于 PHP 通常以 www-data 等 Web 服务账户运行,攻击者因此获得了与 Web 服务器同等权限的代码执行能力,可能导致服务器被完全控制。

by DeepSeek.

相关链接:

安全公告:存在严重的远程代码执行漏洞,请立即更新

PHP 与 Node.js 紧急安全更新公告

相关文章:

  1. PHP OAuth2 Server 隐性授权 隐性授权 不再推荐使用隐性授权。该授权方式仅出于遗留目的而记录在此处。行业最佳实践建议使用授权码,对......
  2. PHP OAuth2 Server 客户端凭证授权 客户端凭证 此授权适用于机器对机器身份验证,例如用于通过 API 执行维护任务的 cron 作业。另......
  3. FastAdmin 载入语言包 在开发中需要使用其他模块的语言包,你可以使用以下方式:...
  4. Windows 下配置 PHP PDO 连接达梦数据库 本文将介绍 Windows 下 PHP PDO 方式连接达梦数据库。...
PHP

文章导航

Previous post

近期文章

  • PHP 严重漏洞:攻击者可在未经身份验证的情况下实现远程代码执行
  • BT Windows 面板 FastAdmin 伪静态问题
  • 不会有终结者走在街上
  • 有了 AI,我们是不是无所不能了?
  • 某某项目反思

归档

  • 2026 年 10 月
  • 2026 年 8 月
  • 2026 年 7 月
  • 2026 年 5 月
  • 2026 年 4 月
  • 2026 年 3 月
  • 2026 年 2 月
  • 2025 年 12 月
  • 2025 年 10 月
  • 2025 年 8 月
  • 2025 年 7 月
  • 2025 年 6 月
  • 2025 年 5 月
  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2024 年 1 月
  • 2023 年 12 月
除非特殊说明,本站作品采用知识共享署名 4.0 国际许可协议进行许可。
豫公网安备 41010402002622号 豫ICP备2020029609号-3
©2026 3Vshej