GHSA-vx74-f528-fxqg github.com/nghttp2/nghttp2 has HTTP/2 Rapid Reset
Attackers can cause denial of service by rapidly creating and cancelling HTTP/2 streams, affecting applications using the nghttp2 library.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is GHSA-vx74-f528-fxqg?
GHSA-vx74-f528-fxqg is a denial of service vulnerability in github.com/nghttp2/nghttp2, published on 10 Oct 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Impact
Rapidly creating and cancelling streams (HEADERS frame immediately followed by RST_STREAM) without bound cause denial of service.
See https://www.cve.org/CVERecord?id=CVE-2023-44487 for details.
Patches
nghttp2 v1.57.0 mitigates this vulnerability by default.
Workarounds
If upgrading to nghttp2 v1.57.0 is not possible, implement nghttp2_on_frame_recv_callback, and check and count RST_STREAM frames. If excessive number of RST_STREAM are received, then take action, such as dropping connection silently, or call nghttp2_submit_goaway and gracefully terminate the connection.
References
The following commit mitigates this vulnerability:
Which versions are affected by GHSA-vx74-f528-fxqg?
2 open source packages ship an affected version, including github.com/nghttp2/nghttp2.
| Package | Affected | Fixed in |
|---|---|---|
github.com/nghttp2/nghttp2 Go | All versions | 1.57.0 |
github.com/nghttp2/nghttp2 Go | All versions | 1.57.0 |
How do I fix GHSA-vx74-f528-fxqg?
Upgrade github.com/nghttp2/nghttp2 to 1.57.0 or later.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is GHSA-vx74-f528-fxqg being exploited?
There is no known exploitation of GHSA-vx74-f528-fxqg in the wild and no public exploit code.