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_version": "1.7.1-1ubuntu0.1~esm1", "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" } ] }
{ "availability": "Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "1.30.0-1ubuntu1+esm1", "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" } ] }
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "1.40.0-1ubuntu0.1", "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" } ] }
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "1.43.0-1build3", "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" } ] }