DescriptionIn 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.
SourceCVE (at NVD; CERT, LWN, oss-sec, fulldisc, bugtraq, EDB, Metasploit, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, Mageia, GitHub code/issues, web search, more)
ReferencesDLA-2786-1, DSA-4696-1
Debian Bugs962145

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
nghttp2 (PTS)stretch1.18.1-1+deb9u1vulnerable
stretch (security)1.18.1-1+deb9u2fixed
buster, buster (security)1.36.0-2+deb10u1vulnerable
bookworm, sid1.47.0-1fixed
nodejs (PTS)stretch4.8.2~dfsg-1vulnerable
buster, buster (security)10.24.0~dfsg-1~deb10u1fixed
bullseye (security), bullseye12.22.5~dfsg-2~11u1fixed
bookworm, sid16.14.2+dfsg1-1fixed

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs


[buster] - nghttp2 <no-dsa> (Minor issue)
[stretch] - nodejs <ignored> (Nodejs in stretch not covered by security support)
[jessie] - nodejs <end-of-life> (Nodejs in jessie not covered by security support) (v1.41.0) (v1.41.0)

Search for package or bug name: Reporting problems