]> git.kaiwu.me - nginx.git/commit
HTTP/2: limit the number of idle state switches.
authorRuslan Ermilov <ru@nginx.com>
Tue, 6 Nov 2018 13:29:49 +0000 (16:29 +0300)
committerRuslan Ermilov <ru@nginx.com>
Tue, 6 Nov 2018 13:29:49 +0000 (16:29 +0300)
commitb5802dbf51cf713f84c763180bc45069fb3bf320
tree9ed4b8c7bf4dd9508713994fba8ead78a3c8863a
parent65b2c00d624f17892c777f8fb5bb9c623cff5188
HTTP/2: limit the number of idle state switches.

An attack that continuously switches HTTP/2 connection between
idle and active states can result in excessive CPU usage.
This is because when a connection switches to the idle state,
all of its memory pool caches are freed.

This change limits the maximum allowed number of idle state
switches to 10 * http2_max_requests (i.e., 10000 by default).
This limits possible CPU usage in one connection, and also
imposes a limit on the maximum lifetime of a connection.

Initially reported by Gal Goldshtein from F5 Networks.
src/http/v2/ngx_http_v2.c
src/http/v2/ngx_http_v2.h