Snyk has a proof-of-concept or detailed explanation of how to exploit this vulnerability.
The probability is the direct output of the EPSS model, and conveys an overall sense of the threat of exploitation in the wild. The percentile measures the EPSS probability relative to all known EPSS scores. Note: This data is updated daily, relying on the latest available EPSS model version. Check out the EPSS documentation for more details.
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.
Test your applicationsUpgrade bandit to version 1.14.0 or higher.
bandit is a HTTP server for Plug and WebSock apps.
Affected versions of this package are vulnerable to Allocation of Resources Without Limits or Throttling via the HTTP/2 DATA frame handler in Bandit.HTTP2.Connection.handle_frame/3, which does not enforce the HTTP/2 receive flow-control window. An attacker can send DATA frames beyond the advertised receive window without triggering a FLOW_CONTROL_ERROR or GOAWAY response, causing unbounded memory growth on the server and eventually crashing it.
Note: This is only exploitable when the server's stream receive window is exhausted and the attacker continues sending DATA frames that the server never rejects.
1. On an HTTP/2 connection, request a resource whose response exceeds 65,535 bytes and send no `WINDOW_UPDATE`. The server sends one window's worth and the stream blocks in `send_data/3`.
2. Send 1-byte DATA frames on that stream in batches, ignoring the server's receive windows.
3. Between batches, at intervals under 15 seconds, send a stream `WINDOW_UPDATE` with an increment of 1 to keep the blocked send alive.
4. Send a PING. It is acknowledged, and the server has sent neither `FLOW_CONTROL_ERROR` nor `GOAWAY` while its memory grows with every frame.
Note: The PoC states no specific environment, runtime version, or operating system.