CVE-2026-27135
HighCVSS 7.5Exploitation Probability (EPSS)
Elevated risk52th percentile - higher than 52% of all known CVEs
Summary
In nghttp2 library before version 1.68.1, missing internal state validation after calling `nghttp2_session_terminate_session` or `nghttp2_session_terminate_session2` causes the library to continue reading incoming data. Receiving a malformed frame can trigger an assertion failure and crash.
Risk Assessment
An attacker can send a crafted HTTP/2 frame, causing the application using nghttp2 to crash, leading to denial of service (DoS).
Recommendation
Upgrade nghttp2 library to version 1.68.1 or later, which includes the missing state validation fix.
Other vulnerabilities in nghttp2
See all- CVE-2024-28182Medium
The nghttp2 library prior to version 1.61.0 keeps reading an unbounded number of HTTP/2 CONTINUATION frames even after a stream is reset to keep the HPACK context in sync. This causes excessive CPU usage to decode HPACK state.
- CVE-2015-8659Critical
Idle stream handling in nghttp2 before version 1.6.0 contains a heap-use-after-free bug that can be exploited by attackers in unspecified ways.
- CVE-2026-58055Medium
A vulnerability in nghttp2 nghttpx up to version 1.69.0 causes an HTTP/1.1 Upgrade request with a Content-Length header and body to be forwarded onto reusable keep-alive backend connections. A backend interpreting this ambiguous message in the attacker's favor enables HTTP request/response smuggling and cross-client response-queue poisoning.
- CVE-2026-24029Medium
When the early_acl_drop (earlyACLDrop in Lua) option is disabled (default is enabled) on a DNS over HTTPS frontend using the nghttp2 provider, the ACL check is skipped, allowing all clients to send DoH queries regardless of the configured ACL.
Original NVD description (English source)
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.

