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(
via The Hacker News / Calif 技术分析
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 技术分析
