![]()
最新发布的 HTTP/2 安全公告披露,Apache Tomcat 的 Coyote 引擎存在一个新漏洞(编号 CVE-2025-53506)。
美国国家漏洞数据库于 5 天前首次记录该漏洞,其成因是当 HTTP/2 客户端始终不确认服务器初始的 SETTINGS 帧时,Coyote 引擎未对并发流数量实施严格限制。
攻击者可通过反复创建永不关闭的流,耗尽服务器的线程池,迫使容器进入长时间的拒绝服务状态,不过数据的机密性和完整性不会受到影响。
由于攻击流量通过常规的 TCP 443 端口传输,防火墙无法识别异常;且该漏洞攻击复杂度低,无需验证凭据即可实施。
GitHub 分析师追踪发现,该问题源于添加动态流限制的代码重构过程中引入的竞态条件,并发布了概念验证流量捕获数据,可稳定导致未打补丁的版本崩溃。
所有仍在维护的版本均受此漏洞影响,包括 11.0.0-M1 至 11.0.8、10.1.0-M1 至 10.1.42,以及 9.0.0.M1 至 9.0.106 版本。
Apache 已发布修复版本 11.0.9、10.1.43 和 9.0.107;无法立即升级的管理员应至少禁用 HTTP/2,或在反向代理层限制
maxConcurrentStreams
参数,以避免服务中断。
该漏洞的 CVSS v4 评分为 6.3,其中可用性影响等级为 “高”,其他影响指标为 “无”,凸显其以拒绝服务为核心的攻击特征。
实际攻击中,攻击者保持单个 TLS 会话打开,并循环发送以下 payload:
PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n ; connection pre-face
…SETTINGS (ACK omitted) ; server settings ignored
HEADERS END_STREAM=0 … ; open stream 1
HEADERS END_STREAM=0 … ; open stream 2
/* repeat until thread pool saturation */
由于 Tomcat 在接收实际数据前就为每个流分配工作线程,每个 “孤儿流” 会无限期占用一个线程。
一旦执行器队列达到上限,合法请求将超时失败,导致网站实际下线,但 Java 虚拟机(JVM)不会崩溃。
具有 SETTINGS 确认超时限制或严格流数量上限的现代反向代理,可有效阻断此类攻击,因此在全面部署补丁前,上游防护措施具有实际可行性。
发表评论
您还未登录,请先登录。
登录