Skip to content

PoC for CVE-2023-45288, continuation flood vulnerability

Notifications You must be signed in to change notification settings

hex0punk/cont-flood-poc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PoC for CVE-2023-45288

This is a proof-of-concept code for the CONTINUATION flood vulnerability found and documented by Bartek Nowotarski. The technical details are very well documented in his blog post here. While my focus was on the Go bug as documented by the researcher, this code should be helpful in testing other CVEs related to this issue.

This code borrows some inspiration from:

  1. The PoC code for the rapid reset vulnerability from https://github.com/secengjeff/rapidresetclient
  2. Test code added after the vulnerability was patched by the Go team, located in golang/net/http2/server_test.go

My initial goal was to understand the vulnerability in detail, in addition to developing a tool for testing this issue at work. This was also very helpful when working on understanding the inner workings of http2 in detail. Other sources that were helpful include:

Testing with the included server

You can run the included server.go file which runs on a vulnerable version of golang.org/x/net (0.20.0).

$ go run server.go

The server runs on port 8443, which the client points to by defaults.

Expected output

When ran against vulnerable servers, the client will be able to continue to send CONTINUATION frames for as long as you specify for the wait flag in seconds. The server prints its CPU usage every 2 seconds, which you will see increase rapidly as the client runs. In patched versions (0.23.0 and above), the server will close the connection once the header size limit is reached.

Example

Run the client, creating 6 concurrent connections, calling https://localhost:8443, and sending continuation frames for 200 seconds for each connection:

$ go run client.go -time-limit 200  -connections 6 -url https://localhost:8443

About

PoC for CVE-2023-45288, continuation flood vulnerability

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages