
简而言之
截至2026年11月13日,CVE-2026-119618是Apache HTTP Server的HTTP/2模块中的一个高危漏洞,可能导致远程代码执行,修复版本为11月11日发布的2.4.71 [1]。它影响2.4.55至2.4.70版本,但仅限于启用了HTTP/2的情况 [2][3]。
要点
- Apache将CVE-2026-119618评为高危:mod_http2的assign_headers()中的竞态条件可破坏内存,进而导致远程代码执行 [1]。
- 受影响版本:Apache HTTP Server 2.4.55至2.4.70,以及独立的mod_h2 2.0.8至2.0.42 [1]。
- 只有接受HTTP/2的服务器才可能被攻击;仅支持HTTP/1.1的服务器不受影响 [2][3]。
- 该漏洞由Anthropic的OSS Scanner于10月26日报告,Google的研究人员于11月3日独立报告 [1]。
- 截至Wiz在11月11日发表的文章,尚未有在野利用的报告;公开的概念验证只能造成崩溃,无法执行代码 [5][3]。
- 修复方法:升级到2.4.71或已打补丁的发行版软件包;禁用HTTP/2只是临时的权宜之计 [2]。
本页内容 13 个部分
CVE-2026-119618是什么漏洞?
CVE-2026-119618是mod_http2(Apache HTTP Server中处理HTTP/2流量的模块)的一个高危漏洞;它可能导致堆损坏和远程代码执行 [1]。
Apache将其描述为“Apache HTTP Server的mod_http2在assign_headers()中存在的、对共享资源使用不当同步的并发执行漏洞”,该漏洞“可导致RCE” [1]。卢森堡国家计算机应急响应小组CIRCL解释说,在并发处理HTTP/2流时,某个工作线程可能修改为另一执行上下文分配的头部表,这种对共享内存的不安全访问会破坏堆 [2]。
成功的攻击者无需登录,即可以Apache Web服务器进程的权限运行代码 [2][4]。据BleepingComputer估计,大约每五个网站中就有一个运行着Apache HTTP Server [4]。
上游的修复把modules/http2/h2_request.c中的一处写入,从共享的请求头部表改为当前请求自己的输入头部 [2]。
哪些Apache版本受影响?
Apache HTTP Server 2.4.55至2.4.70受影响,GitHub上独立发布的mod_h2 2.0.8至2.0.42版本同样受影响;2.4.71版本已修复该漏洞 [1]。
发行版软件包使版本检查变得复杂。CIRCL建议使用发行版维护软件包的机构,核实其安全补丁的向后移植情况,而不要只依赖上游版本号 [2]。据CIRCL转述,Red Hat把其RHEL 9和10软件包评为“重要”而非“严重”,因为其内存分配器使利用更加困难,并称RHEL 8及更早版本不受影响 [2]。
我的Apache服务器存在漏洞吗?
只有当它运行受影响的版本,并且确实接受HTTP/2连接时才存在:Red Hat称,配置为仅提供HTTP/1.1的服务器不受影响 [3]。CIRCL强调,仅仅因为安装或加载了mod_http2,并不意味着该代码路径可被触及 [2]。
- Protocols指令控制HTTP/2:“h2”在TLS上启用它,“h2c”在明文上启用它 [2]。
- Apache核心的默认值是http/1.1,仅仅加载mod_http2并不会改变这一点 [2]。BleepingComputer指出,HTTP/2默认是关闭的 [4]。
- 虚拟主机可以设置自己的Protocols指令,因此只检查全局配置,可能会漏掉启用了HTTP/2的站点 [2]。
- 如果反向代理、负载均衡器或CDN终止HTTP/2,仅向Apache转发HTTP/1.1,那么客户端的HTTP/2会话本身并不会使Apache可被触及,但你应当核实每一跳上的协议 [2]。
CIRCL建议检查版本和已加载的模块(apachectl -v、apachectl -M)、已配置的虚拟主机(apachectl -S),以及每一处显式的Protocols设置 [2]。某个端点接受HTTP/2的测试结果,并不能证明其后端存在漏洞;而测试结果为否定,也不能证明每个端口或虚拟主机都拒绝HTTP/2 [2]。
如何检查我的服务器是否接受HTTP/2?
CIRCL建议两项检查:先在服务器本机上检查Apache配置,再从网络上测试协商出的协议,最好直接连接Apache,而不是经过代理 [2]。
- 检查版本和模块。运行apachectl -v查看版本,运行apachectl -M(按http2过滤)查看该模块是否已加载 [2]。
- 列出虚拟主机。apachectl -S会显示所有已配置的虚拟主机,这一点很重要,因为每个虚拟主机都可能有自己的Protocols行 [2]。
- 找出每一条Protocols指令。CIRCL给出了一条grep命令,用来在/etc/apache2和/etc/httpd中搜索显式的Protocols设置,包括虚拟主机的覆盖设置;各发行版的路径有所不同 [2]。
- 测试TLS。用带--http2选项并输出HTTP版本的curl请求,可以看出HTTPS端点是否协商出HTTP/2 [2]。
- 测试明文。使用--http2-prior-knowledge的curl可以检查纯HTTP端点是否接受h2c [2]。
请仔细解读结果。显示HTTP/2的响应只说明被测端点接受了HTTP/2,并不能确认其Apache后端存在漏洞;否定的结果也不能证明每一个地址、端口或虚拟主机都拒绝它 [2]。CIRCL的建议是,同时确认Apache的实际有效配置和供应商的补丁包状态 [2]。在云环境中,Wiz警告说,被攻陷的Apache实例可能成为横向移动到邻近微服务或云元数据端点的入口,这是需要检查每一个实例、而不只是公开网站的另一个原因 [5]。
如何修复CVE-2026-119618?
升级到Apache HTTP Server 2.4.71或更高版本,或安装你所用发行版的已修补软件包,然后重启Apache,并确认正在运行的进程使用的是新版本 [2][1]。
- 更新Apache。安装2.4.71,或明确针对CVE-2026-119618打过补丁的厂商版本 [2]。
- 如果使用独立的mod_h2,请更新它,按其供应商的指示操作;Wiz称应升级到2.0.42之后的版本,而CIRCL提醒不要未经核实就假定存在更新的独立版本 [5][2]。
- 重启并验证正在运行的进程使用的是已修正的版本 [2]。
- 如果暂时无法打补丁,请禁用HTTP/2:把Protocols设置为http/1.1,在每个覆盖设置的虚拟主机中移除h2和h2c,用apachectl -t测试后重新加载 [2]。这会堵住该漏洞的利用路径,但并没有修复代码 [2]。
- 限制访问,在既无法打补丁、也无法更改协议的地方,作为临时措施,只允许受信任的网络访问 [2]。
据BleepingComputer报道,watchTowr的研究人员将其概括为“要么立即打补丁,要么在能打补丁之前放弃h2” [4]。SecurityWeek报道,Defiant也警告说,WordPress的安全更新无法解决这个问题,因为它影响的是底层的Web服务器 [3]。
CVE-2026-119618正在被利用吗?
截至Wiz在2026年11月11日发表的文章,尚无可用的漏洞利用代码,也没有在野利用的报告 [5]。不过形势变化很快。
- Red Hat称,公开的研究已证明可对启用mod_http2的服务器实施可靠的利用,但其公告没有指明是哪项研究 [3]。CIRCL指出,这本身并不能说明存在在野利用 [2]。
- GitHub上的一个公开概念验证称复现了内存损坏和Apache崩溃,但并未演示远程代码执行 [3]。
- Wiz的数据显示,64%的云环境中有资源运行着受影响的版本,51%有公开暴露的实例;Wiz指出,这并未考虑配置情况,因此这些并不一定是可被利用的系统 [5][3]。
CIRCL列出了值得调查的迹象:意外的工作进程崩溃、异常重启、可疑的子进程、未经授权的文件改动以及意外的出站连接 [2]。这些只是线索,而不是已确认的入侵指标,并且打补丁并不能清除更新之前就已建立的持久化 [2]。
谁发现了Apache HTTP/2漏洞?
Apache将功劳归于2026年10月26日报告该漏洞的Anthropic的OSS Scanner,以及于11月3日独立报告该漏洞的Google Cloud Vulnerability Research的Anthony Weems和Simon Scannell [1]。
Anthropic的发现登记在内部编号ANT-2026-MAPKT6MZ之下 [1]。SecurityWeek称这两份报告是各自独立的发现 [3]。这又是自动化和AI辅助工具在广泛使用的开源软件中发现严重缺陷的一个例子;能发现安全漏洞的AI:Glasswing与新CVE对你意味着什么探讨了这一趋势的含义。
修复已提交,2.4.71于11月11日发布,同一天Apache在oss-security邮件列表上披露了该问题 [1][2]。
Apache 2.4.71还修复了什么?
Apache HTTP Server 2.4.71总共修复了三个CVE:一个高危、一个重要、一个低危 [1]。
- CVE-2026-106023(重要):mod_md在处理请求时出现的空指针解引用,可导致子进程崩溃;影响2.4.30至2.4.70 [1]。
- CVE-2026-109163(低危):mod_vhost_alias中的单字节栈缓冲区覆盖,Apache将其标注为“继CVE-2026-63292之后”(那个更早的漏洞已在2.4.69中修复);影响2.4.69和2.4.70 [1]。
上一个版本,即2026年10月的2.4.69,修复了20个CVE [1]。跳过它的管理员,升级到2.4.71时也会一并获得那些修复。关于近期的另一个服务器漏洞,请参阅CVE-2026-98432详解:Linux TCP漏洞以及如何保护你的服务器。
管理员接下来该关注什么?
关注是否出现公开的远程代码执行利用代码、你所用发行版的厂商向后移植补丁,以及任何在野攻击的报告 [3][5]。
CIRCL建议盘点启用了HTTP/2的实例,检查每个mod_http2版本是否受影响,并立即给暴露的系统打补丁,优先处理面向互联网的网站、API、共享主机,以及位于转发HTTP/2的前端之后的Apache服务器 [2]。发现可疑活动的机构应遵循其事件响应流程,并联系本国的CSIRT [2]。
| CVE | 严重程度 | 模块 | 受影响版本 |
|---|---|---|---|
| CVE-2026-119618 | 高危 | mod_http2(RCE) | 2.4.55 - 2.4.70 |
| CVE-2026-106023 | 重要 | mod_md(崩溃) | 2.4.30 - 2.4.70 |
| CVE-2026-109163 | 低危 | mod_vhost_alias | 2.4.69 - 2.4.70 |
常见错误
常见问题
CVE-2026-119618是什么漏洞?
Apache HTTP Server中mod_http2的一个高危竞态条件,可能导致RCE [1]。
哪些Apache版本受影响?
2.4.55至2.4.70,以及mod_h2 2.0.8至2.0.42 [1]。
我的Apache服务器存在漏洞吗?
只有受影响的版本接受HTTP/2时才存在;仅支持HTTP/1.1的服务器则不受影响 [3]。
如何检查我的服务器是否接受HTTP/2?
查看apachectl的输出和Protocols行,然后用curl --http2测试 [2]。
如何修复CVE-2026-119618?
升级到2.4.71或已修补的软件包;如有需要,可暂时禁用HTTP/2 [2]。
谁发现了Apache HTTP/2漏洞?
Anthropic的OSS Scanner和Google Cloud Vulnerability Research,二者各自独立发现 [1]。
Apache 2.4.71还修复了什么?
CVE-2026-106023(重要)和CVE-2026-109163(低危)[1]。
术语表
来源
- Apache HTTP Server 2.4 vulnerabilities Apache Software Foundation
- TR-103 - Critical Remote Code Execution in Apache HTTP Server mod_http2 (CVE-2026-119618) CIRCL · 2026-11-12
- Apache Patches Critical HTTP Server RCE Found by Anthropic, Google SecurityWeek · 2026-11-12
- Apache HTTP Server patches critical HTTP/2 remote code execution flaw BleepingComputer · 2026-11-12
- Critical RCE Vulnerability in Apache HTTP Server: Everything You Need To Know Wiz · 2026-11-11
评论
热门评论