YYaaa News

HTTP/2 Bomb|一台家用电脑 20 秒耗尽服务器 32GB 内存

一句话总结

HTTP/2 Bomb:一台 100Mbps 家用机 20 秒耗尽服务器 32GB 内存,NGINX、Apache、IIS、Envoy、Cloudflare Pingora 默认配置全中招。

HTTP/2 Bomb|一台家用电脑 20 秒耗尽服务器 32GB 内存

OpenAI Codex 发现,安全公司 Calif 披露。受影响:NGINX、Apache HTTPD、Microsoft IIS、Envoy、Cloudflare Pingora——默认配置下全部中招。

原理

两个已知技术的组合:HPACK 压缩炸弹 + Slowloris 连接占用。HPACK 是 HTTP/2 的 header 压缩方案,攻击者发送几乎为空的 header,但每个 entry 都会触发服务器分配 per-entry bookkeeping 内存——绕过了各服务器针对「decoded size」设置的上限(因为几乎没有东西需要解码)。然后用 HTTP/2 的零字节 flow-control window 把连接挂住,让服务器无法释放任何已分配的内存。

结果:单条 100Mbps 家用连接几秒内让服务器不可用,Apache HTTPD 和 Envoy 上 20 秒吃掉 32GB。

修补状态

NGINX:升至 1.29.8+;不能升的直接关掉 HTTP/2(http2 off;)。Apache:mod_http2 v2.0.41 已修;或设 Protocols http/1.1。IIS、Envoy、Cloudflare Pingora:目前无补丁。

via The Hacker News / Calif 技术分析
HTTP/2 Bomb|一台家用電腦 20 秒耗盡伺服器 32GB 記憶體