In nghttp2 before version 1.41.0, the overly large HTTP/2 SETTINGS frame payload causes denial of service. The proof of concept attack involves a malicious client constructing a SETTINGS frame with a length of 14,400 bytes (2400 individual settings entries) over and over again. The attack causes the CPU to spike at 100%. nghttp2 v1.41.0 fixes this vulnerability. There is a workaround to this vulnerability. Implement nghttp2_on_frame_recv_callback callback, and if received frame is SETTINGS frame and the number of settings entries are large (e.g., > 32), then drop the connection.
2020-06-03T23:15:11.073
2024-11-21T04:56:44.657
Modified
CVSSv3.1: 3.7 (LOW)
AV:N/AC:L/Au:N/C:N/I:N/A:P
10.0
2.9
Type | Vendor | Product | Version/Range | Vulnerable? |
---|---|---|---|---|
Application | nghttp2 | nghttp2 | < 1.41.0 | Yes |
Operating System | debian | debian_linux | 9.0 | Yes |
Operating System | debian | debian_linux | 10.0 | Yes |
Operating System | opensuse | leap | 15.1 | Yes |
Operating System | fedoraproject | fedora | 31 | Yes |
Operating System | fedoraproject | fedora | 33 | Yes |
Application | oracle | banking_extensibility_workbench | 14.3.0 | Yes |
Application | oracle | banking_extensibility_workbench | 14.4.0 | Yes |
Application | oracle | blockchain_platform | < 21.1.2 | Yes |
Application | oracle | enterprise_communications_broker | 3.1.0 | Yes |
Application | oracle | enterprise_communications_broker | 3.2.0 | Yes |
Application | oracle | graalvm | 19.3.2 | Yes |
Application | oracle | graalvm | 20.1.0 | Yes |
Application | oracle | mysql | ≤ 7.3.30 | Yes |
Application | oracle | mysql | ≤ 7.4.29 | Yes |
Application | oracle | mysql | ≤ 7.5.19 | Yes |
Application | oracle | mysql | ≤ 7.6.15 | Yes |
Application | oracle | mysql | ≤ 8.0.21 | Yes |
Application | nodejs | node.js | ≤ 10.12.0 | Yes |
Application | nodejs | node.js | < 10.21.0 | Yes |
Application | nodejs | node.js | ≤ 12.12.0 | Yes |
Application | nodejs | node.js | < 12.18.0 | Yes |
Application | nodejs | node.js | ≤ 14.4.0 | Yes |