Logo
componentnghttp2
Name
nghttp2
Version
1.47.0
Type
library
Description
HTTP/2 C Library and tools
Licenses
MIT
PURL
-
CPE
cpe:2.3:*:nghttp2:nghttp2:1.47.0:*:*:*:*:*:*:*

Other Versions#


Project
Branch
Version
master
1.69.0
scarthgap
1.61.0

Patches#


#
Title
Author
Resolve
1
Add nghttp2_option_set_max_continuations
Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CVE-2024-28182
2
Limit CONTINUATION frames following an incoming HEADER frame
Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CVE-2024-28182
3
Fix memory leak
Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CVE-2023-35945
4
fetch-ocsp-response: use python3
=?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
5
Rework session management
Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
CVE-2023-44487

Vulnerabilities#


Name
Analysis
Description
Exploitable
nghttp2 is an implementation of the Hypertext Transfer Protocol version 2 in C. Prior to version 1.68.1, the nghttp2 library stops reading the incoming data when user facing public API `nghttp2_session_terminate_session` or `nghttp2_session_terminate_session2` is called by the application. They might be called internally by the library when it detects the situation that is subject to connection error. Due to the missing internal state validation, the library keeps reading the rest of the data after one of those APIs is called. Then receiving a malformed frame that causes FRAME_SIZE_ERROR causes assertion failure. nghttp2 v1.68.1 adds missing state validation to avoid assertion failure. No known workarounds are available.
Patched
nghttp2 is an implementation of the Hypertext Transfer Protocol version 2 in C. The nghttp2 library prior to version 1.61.0 keeps reading the unbounded number of HTTP/2 CONTINUATION frames even after a stream is reset to keep HPACK context in sync. This causes excessive CPU usage to decode HPACK stream. nghttp2 v1.61.0 mitigates this vulnerability by limiting the number of CONTINUATION frames it accepts per stream. There is no workaround for this vulnerability.
Patched
The HTTP/2 protocol allows a denial of service (server resource consumption) because request cancellation can reset many streams quickly, as exploited in the wild in August through October 2023.
Patched
Envoy is a cloud-native high-performance edge/middle/service proxy. Envoy’s HTTP/2 codec may leak a header map and bookkeeping structures upon receiving `RST_STREAM` immediately followed by the `GOAWAY` frames from an upstream server. In nghttp2, cleanup of pending requests due to receipt of the `GOAWAY` frame skips de-allocation of the bookkeeping structure and pending compressed header. The error return [code path] is taken if connection is already marked for not sending more requests due to `GOAWAY` frame. The clean-up code is right after the return statement, causing memory leak. Denial of service through memory exhaustion. This vulnerability was patched in versions(s) 1.26.3, 1.25.8, 1.24.9, 1.23.11.