Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(deps): update module golang.org/x/net to v0.17.0 [security] #28550

Merged
merged 1 commit into from Oct 12, 2023

Conversation

aanm
Copy link
Member

@aanm aanm commented Oct 12, 2023

A malicious HTTP/2 client which rapidly creates requests and immediately resets them can cause excessive server resource consumption. While the total number of requests is bounded by the http2.Server.MaxConcurrentStreams setting, resetting an in-progress request allows the attacker to create a new request while the existing one is still executing.

With the fix applied, HTTP/2 servers now bound the number of simultaneously executing handler goroutines to the stream concurrency limit (MaxConcurrentStreams). New requests arriving when at the limit (which can only happen after the client has reset an existing, in-flight request) will be queued until a handler exits. If the request queue grows too large, the server will terminate the connection.

This issue is also fixed in golang.org/x/net/http2 for users manually configuring HTTP/2.

The default stream concurrency limit is 250 streams (requests) per HTTP/2 connection. This value may be adjusted using the golang.org/x/net/http2 package; see the Server.MaxConcurrentStreams setting and the ConfigureServer function

A malicious HTTP/2 client which rapidly creates requests and immediately resets them
can cause excessive server resource consumption. While the total number of requests
is bounded by the http2.Server.MaxConcurrentStreams setting, resetting an
in-progress request allows the attacker to create a new request while the existing
one is still executing.

With the fix applied, HTTP/2 servers now bound the number of simultaneously
executing handler goroutines to the stream concurrency limit (MaxConcurrentStreams).
New requests arriving when at the limit (which can only happen after the client has
reset an existing, in-flight request) will be queued until a handler exits. If the
request queue grows too large, the server will terminate the connection.

This issue is also fixed in golang.org/x/net/http2 for users manually configuring
HTTP/2.

The default stream concurrency limit is 250 streams (requests) per HTTP/2
connection. This value may be adjusted using the golang.org/x/net/http2 package; see
the Server.MaxConcurrentStreams setting and the ConfigureServer function

Signed-off-by: André Martins <andre@cilium.io>
@aanm aanm added release-note/misc This PR makes changes that have no direct user impact. release-blocker/1.14 This issue will prevent the release of the next version of Cilium. labels Oct 12, 2023
@aanm aanm requested a review from a team as a code owner October 12, 2023 00:02
@maintainer-s-little-helper maintainer-s-little-helper bot added backport/1.14 This PR represents a backport for Cilium 1.14.x of a PR that was merged to main. kind/backports This PR provides functionality previously merged into master. labels Oct 12, 2023
@aanm
Copy link
Member Author

aanm commented Oct 12, 2023

/test-backport-1.14

@aanm aanm merged commit c616c15 into cilium:v1.14 Oct 12, 2023
58 of 59 checks passed
@maintainer-s-little-helper maintainer-s-little-helper bot added ready-to-merge This PR has passed all tests and received consensus from code owners to merge. labels Oct 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport/1.14 This PR represents a backport for Cilium 1.14.x of a PR that was merged to main. kind/backports This PR provides functionality previously merged into master. ready-to-merge This PR has passed all tests and received consensus from code owners to merge. release-blocker/1.14 This issue will prevent the release of the next version of Cilium. release-note/misc This PR makes changes that have no direct user impact.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants