An attacker can make the Node.js HTTP/2 server completely unavailable by sending a small amount of HTTP/2 frames packets with a few HTTP/2 frames inside. It is possible to leave some data in nghttp2 memory after reset when headers with HTTP/2 CONTINUATION frame are sent to the server and then a TCP connection is abruptly closed by the client triggering the Http2Session destructor while header frames are still being processed (and stored in memory) causing a race condition.
https://www.cisa.gov/news-events/ics-advisories/icsa-24-319-08
https://github.com/dryfryce/phoenix-http2
https://github.com/dryfryce/phoenix-h2
https://github.com/dryfryce/http2-deep-research
https://github.com/vitalii-moholivskyi/selected-cve-dataset-2024
https://github.com/lirantal/CVE-2024-27983-nodejs-http2
https://github.com/hex0punk/cont-flood-poc
https://www.kb.cert.org/vuls/id/421644
https://security.netapp.com/advisory/ntap-20240510-0002/
https://lists.debian.org/debian-lts-announce/2024/09/msg00029.html