VDB
KO
MEDIUM 5.3

GHSA-563q-j3cm-6jxm

Netty susceptible to HTTP/2 Reset Attack with different on-the-wire signature

Details

### Summary

Netty HTTP/2 max header size handling produces attack similar to HTTP/2 Rapid Reset.

### Details

There is a setting in the http2 specification called `SETTINGS_MAX_HEADER_LIST_SIZE`. According to[ the RFC](https://www.rfc-editor.org/rfc/rfc9113.html#name-defined-settings): “This advisory setting informs a peer of the maximum field section size that the sender is prepared to accept, in units of octets.”

When a client sends that setting to Netty, it appears that Netty will behave as follows:

- Read the request - Proxy the request to the origin - Attempt to produce a response - Create an exception while writing the headers for the response

Functionally, this should be similar to the http2 reset attack, but with a different on-the-wire signature.

## Remediation

When speaking with clients, Netty should potentially treat this as “advisory” and ignore it. It would be best to ignore the SETTINGS_MAX_HEADER_LIST_SIZE setting from clients (or ignore it when sending to clients). According to the spec, a server does not need to honor this advisory setting, and it appears that other http/2 implementations ignore it when acting as a server.

### Impact

This is a DDoS attack similar to the HTTP/2 Rapid Reset Attack.

## Credit Jonathan Looney (Engineering, Netflix)

## Contact Ashley Tolbert (Security, Netflix) - artolbert@netflix.com

Are you affected?

Enter the version of the package you're using.

Affected packages

Maven / io.netty:netty-codec-http2
Introduced in: 4.2.0.Final Fixed in: 4.2.15.Final
Fix # pom.xml: bump <version>4.2.15.Final</version> for io.netty:netty-codec-http2
Maven / io.netty:netty-codec-http2
Introduced in: 0 Fixed in: 4.1.135.Final
Fix # pom.xml: bump <version>4.1.135.Final</version> for io.netty:netty-codec-http2

References