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 nghttp2onframerecvcallback callback, and if received frame is SETTINGS frame and the number of settings entries are large (e.g., > 32), then drop the connection.
{ "availability": "Available with Ubuntu Pro: https://ubuntu.com/pro", "ubuntu_priority": "medium", "binaries": [ { "binary_name": "libnghttp2-14", "binary_version": "1.7.1-1ubuntu0.1~esm1" }, { "binary_name": "libnghttp2-14-dbgsym", "binary_version": "1.7.1-1ubuntu0.1~esm1" }, { "binary_name": "libnghttp2-dev", "binary_version": "1.7.1-1ubuntu0.1~esm1" }, { "binary_name": "libnghttp2-doc", "binary_version": "1.7.1-1ubuntu0.1~esm1" }, { "binary_name": "nghttp2", "binary_version": "1.7.1-1ubuntu0.1~esm1" }, { "binary_name": "nghttp2-client", "binary_version": "1.7.1-1ubuntu0.1~esm1" }, { "binary_name": "nghttp2-client-dbgsym", "binary_version": "1.7.1-1ubuntu0.1~esm1" }, { "binary_name": "nghttp2-proxy", "binary_version": "1.7.1-1ubuntu0.1~esm1" }, { "binary_name": "nghttp2-proxy-dbgsym", "binary_version": "1.7.1-1ubuntu0.1~esm1" }, { "binary_name": "nghttp2-server", "binary_version": "1.7.1-1ubuntu0.1~esm1" }, { "binary_name": "nghttp2-server-dbgsym", "binary_version": "1.7.1-1ubuntu0.1~esm1" } ] }
{ "availability": "Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro", "ubuntu_priority": "medium", "binaries": [ { "binary_name": "libnghttp2-14", "binary_version": "1.30.0-1ubuntu1+esm1" }, { "binary_name": "libnghttp2-14-dbgsym", "binary_version": "1.30.0-1ubuntu1+esm1" }, { "binary_name": "libnghttp2-dev", "binary_version": "1.30.0-1ubuntu1+esm1" }, { "binary_name": "libnghttp2-doc", "binary_version": "1.30.0-1ubuntu1+esm1" }, { "binary_name": "nghttp2", "binary_version": "1.30.0-1ubuntu1+esm1" }, { "binary_name": "nghttp2-client", "binary_version": "1.30.0-1ubuntu1+esm1" }, { "binary_name": "nghttp2-client-dbgsym", "binary_version": "1.30.0-1ubuntu1+esm1" }, { "binary_name": "nghttp2-proxy", "binary_version": "1.30.0-1ubuntu1+esm1" }, { "binary_name": "nghttp2-proxy-dbgsym", "binary_version": "1.30.0-1ubuntu1+esm1" }, { "binary_name": "nghttp2-server", "binary_version": "1.30.0-1ubuntu1+esm1" }, { "binary_name": "nghttp2-server-dbgsym", "binary_version": "1.30.0-1ubuntu1+esm1" } ] }
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_name": "libnghttp2-14", "binary_version": "1.40.0-1ubuntu0.1" }, { "binary_name": "libnghttp2-14-dbgsym", "binary_version": "1.40.0-1ubuntu0.1" }, { "binary_name": "libnghttp2-dev", "binary_version": "1.40.0-1ubuntu0.1" }, { "binary_name": "libnghttp2-doc", "binary_version": "1.40.0-1ubuntu0.1" }, { "binary_name": "nghttp2", "binary_version": "1.40.0-1ubuntu0.1" }, { "binary_name": "nghttp2-client", "binary_version": "1.40.0-1ubuntu0.1" }, { "binary_name": "nghttp2-client-dbgsym", "binary_version": "1.40.0-1ubuntu0.1" }, { "binary_name": "nghttp2-proxy", "binary_version": "1.40.0-1ubuntu0.1" }, { "binary_name": "nghttp2-proxy-dbgsym", "binary_version": "1.40.0-1ubuntu0.1" }, { "binary_name": "nghttp2-server", "binary_version": "1.40.0-1ubuntu0.1" }, { "binary_name": "nghttp2-server-dbgsym", "binary_version": "1.40.0-1ubuntu0.1" } ] }
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_name": "libnghttp2-14", "binary_version": "1.43.0-1build3" }, { "binary_name": "libnghttp2-14-dbgsym", "binary_version": "1.43.0-1build3" }, { "binary_name": "libnghttp2-dev", "binary_version": "1.43.0-1build3" }, { "binary_name": "libnghttp2-doc", "binary_version": "1.43.0-1build3" }, { "binary_name": "nghttp2", "binary_version": "1.43.0-1build3" }, { "binary_name": "nghttp2-client", "binary_version": "1.43.0-1build3" }, { "binary_name": "nghttp2-client-dbgsym", "binary_version": "1.43.0-1build3" }, { "binary_name": "nghttp2-proxy", "binary_version": "1.43.0-1build3" }, { "binary_name": "nghttp2-proxy-dbgsym", "binary_version": "1.43.0-1build3" }, { "binary_name": "nghttp2-server", "binary_version": "1.43.0-1build3" }, { "binary_name": "nghttp2-server-dbgsym", "binary_version": "1.43.0-1build3" } ] }
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_name": "libnode-dev", "binary_version": "18.19.1+dfsg-6ubuntu5" }, { "binary_name": "libnode109", "binary_version": "18.19.1+dfsg-6ubuntu5" }, { "binary_name": "libnode109-dbgsym", "binary_version": "18.19.1+dfsg-6ubuntu5" }, { "binary_name": "nodejs", "binary_version": "18.19.1+dfsg-6ubuntu5" }, { "binary_name": "nodejs-dbgsym", "binary_version": "18.19.1+dfsg-6ubuntu5" }, { "binary_name": "nodejs-doc", "binary_version": "18.19.1+dfsg-6ubuntu5" } ] }