这是一篇关于 Apache HTTP Server 的 mod_http2 中一个可能导致远程代码执行(RCE)的漏洞的解析。本文从防御方的角度说明发生了什么、谁受影响以及如何应对,不涉及攻击步骤。
- CVE
- CVE-2026-119618(Apache HTTP Server: mod_http2: heap corruption and RCE in assign_headers)
- 严重度
- Apache 评级:critical(其最高级别)。Apache 的公告和 CVE.org 记录中没有 CVSS 评分(Red Hat 自行给出 9.8)
- 类型
- 在没有适当同步的情况下并发使用共享资源(CWE-362);堆损坏导致 RCE
- 受影响
- Apache HTTP Server 2.4.55 至 2.4.70。GitHub 上的 mod_h2:2.0.8 至 2.0.42
- 修复
- Apache HTTP Server 2.4.71(2026年11月11日发布)
- 同时修复
- CVE-2026-106023(mod_md,important)、CVE-2026-109163(mod_vhost_alias,low)
- 利用情况
- 未见实际利用报告(Red Hat 称已发表的研究展示了攻击)。未列入 CISA KEV 的 11 月 10 日版本
- 临时解决办法
- Apache 的公告中没有列出
仅看版本号是不够的
Debian、Red Hat 等有时会在不改变版本号的情况下回移植修复。在已打补丁的系统上,apache2 -v 或 httpd -v 可能显示旧版本。反过来,也不要仅凭版本号就觉得安全:请查看软件包的变更日志或发行版的公告。
这是什么样的漏洞
Apache 的公告称,在 mod_http2 的 assign_headers() 中,在没有适当同步的情况下并发使用共享资源,导致堆损坏,并可能导致远程代码执行。它被归类为 CWE-362。
- Apache 的公告没有给出利用的详细条件,本站也不作猜测。
- 它是通过两份独立的报告发现的。一家基于 AI 的代码分析工具的开发者于 2026年10月26日向 Apache 安全团队报告,一家云服务商的安全研究团队于 11 月 3 日报告。
- Apache 于 11 月 11 日将修复合并到 2.4 分支,并于当天发布了 2.4.71。
- 在 GitHub 上发布的独立 mod_h2 也受影响(2.0.8 至 2.0.42)。如果您是在 Apache 自带的 mod_http2 之外单独安装的它,也请检查。
受影响范围
| 项目 | 详情 |
|---|---|
| 产品 | Apache HTTP Server(mod_http2) |
| 受影响版本 | 2.4.55 至 2.4.70 |
| 修复版本 | 2.4.71 |
| 独立 mod_h2(GitHub) | 2.0.8 至 2.0.42 受影响 |
| 严重度 | Apache:critical(无 CVSS)。Red Hat 自行给出 9.8 |
| 临时解决办法 / 缓解措施 | Apache 的公告中没有列出 |
- 2.4.54 及更早版本不在公告的范围之内。旧版本还积累了其他漏洞,因此无论如何都建议考虑更新。
- 公告没有说只有启用 HTTP/2 的配置才受影响。下一节的信息来自 Red Hat。
2.4.71 中同时修复的另外两个问题
| CVE | 说明 | Apache 评级 | 受影响版本 |
|---|---|---|---|
| CVE-2026-106023 | mod_md:空指针解引用导致子进程崩溃 | important | 2.4.30 至 2.4.70 |
| CVE-2026-109163 | mod_vhost_alias:1 字节栈缓冲区覆盖(CVE-2026-63292 修复后遗留的问题) | low | 2.4.69 和 2.4.70 |
更新到 2.4.71 即可修复这三个问题。
各发行版的状态(截至2026年11月13日)
| 厂商 | 状态 |
|---|---|
| Debian | 安全跟踪页面将 bookworm(12)列为已在 2.4.71-1 |
| Ubuntu | 所有版本均为“Needs evaluation”;未列出修复版本。优先级:High |
| Red Hat | RHEL 9 和 10 受影响,评级为 Important。RHEL 8 及更早版本不受影响。操作步骤见 Red Hat 安全公告 RHSB-2026-017 |
- Red Hat 解释说,RHEL 9 和 10 被评为 Important 而不是 Critical,是因为每个 HTTP/2 流都有自己的内存分配器(据 Red Hat 称,从独立的分配器为每个流分配内存会使利用更困难)。
- 此表是某一日期的检查结果,之后会发生变化。请在各厂商的页面上核实适用于您环境的最新情况。
如何确认自己是否受影响
检查 Apache 版本
运行 apache2 -v(Debian 系)或 httpd -v(RHEL 系)。2.4.55 至 2.4.70 可能受影响。发行版软件包可能在相同的版本号下带有修复,因此请把软件包的变更日志与厂商的安全信息对照。
检查是否启用了 HTTP/2
在配置中查找 Protocols h2 或 h2c,并检查是否加载了 http2 模块(apachectl -M 的输出)。据 Red Hat,启用了 HTTP/2 的服务器受影响,仅使用 HTTP/1.1 的服务器不存在漏洞。这是 Red Hat 的说法;Apache 的公告没有作这种区分。
找出所有运行 Apache 的地方
除了 Web 服务器,还要查找内嵌了 Apache 的产品(管理控制台、网络设备)。关于如何维护清单,见资产清单检查表。
今天该做什么
更新到 2.4.71 或发行版的已修复软件包(最优先)
对于自行编译的 Apache,请升级到 2.4.71。对于通过软件包安装的,请在厂商的页面上查找已修复的软件包并更新。更新后重启或重新加载 Apache,并先运行 apachectl configtest 以发现配置问题。
在尚未发布修复的地方,决定是否需要 HTTP/2
Apache 的公告没有临时解决办法。作为本站自己的补充,在几乎没有理由使用 HTTP/2 的地方,一个选项是从 Protocols 设置中移除 h2 和 h2c,只运行 HTTP/1.1。这不是公告中提到的措施,可能影响性能和客户端,因此请先测试再决定。可以更新之后再恢复。
梳理 Apache 前面有哪些组件
如果负载均衡器或 CDN 终止 HTTP/2,并以 HTTP/1.1 与后端通信,后端的 Apache 可能根本不使用 HTTP/2。请检查在您的环境中是哪一跳使用 HTTP/2。
检查是否有异常
虽然未见实际利用报告,但请检查更新之前是否发生过异常。查看 Apache 子进程是否反复崩溃,以及是否有不熟悉的文件或进程。见如何检查网站或服务器是否被入侵。
利用情况
- Apache 的公告没有提到实际利用。
- 它未列入 CISA KEV 目录的 11 月 10 日版本。
- CVE.org 记录中没有 CVSS 评分。唯一的严重度是 Apache 的评级(critical)。
- 报告分别在 10 月 26 日和 11 月 3 日收到,并于 11 月 11 日公布。发布之前是否被利用,无法从公开信息中确认。
- Red Hat 称,已发表的研究展示了针对默认配置下启用 HTTP/2 的服务器的可信攻击(这不是实际利用的报告)。
- 无法确认关于实际攻击规模或任何行为者的公开信息。
信息来源
- Apache HTTP Server Project — Apache HTTP Server 2.4 vulnerabilities(2.4.71 中的三项修复、受影响版本、报告和修复日期)
- CVE.org — CVE-2026-119618(2026年11月11日发布;CWE-362,严重度 critical,无 CVSS)
- Debian — Debian Security Tracker CVE-2026-119618(bookworm 和 trixie 的修复版本)
- Ubuntu — CVE-2026-119618(需要评估,优先级 High)
- Red Hat — CVE-2026-119618(RHEL 9 和 10 受影响,Important)
- CISA KEV — Known Exploited Vulnerabilities Catalog(未列入该目录的 11 月 10 日版本)
关闭 HTTP/2 是本站在此列出的通用措施,并非 Apache 公告中说明的临时解决办法。最后确认:2026年11月13日。
延伸阅读
- 实务:漏洞响应实务手册 / 资产清单检查表
- 判断:用 CVSS、EPSS、KEV 确定优先级
- 检查是否被入侵:如何检查网站或服务器是否被入侵
- 术语:什么是 RCE? / 什么是 CVSS?