]> 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)
commit60b93594cca9cb5d63f26e724c458ccb380ac540
tree05dfffbc156ab8c2995037279f1dee7b1396fd85
parent8ec4146e1aad3a4fc0b19a024f8ef3516791e30c
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