An open index of dependabot pull requests across open source projects.

HTTP/2 Stream Cancellation Attack

RSS Feed MODERATE
GHSA-qppj-fm5r-hxr3 CVE-2023-44487
Description:

HTTP/2 Rapid reset attack

The HTTP/2 protocol allows clients to indicate to the server that a previous stream should be canceled by sending a RST_STREAM frame. The protocol does not require the client and server to coordinate the cancellation in any way, the client may do it unilaterally. The client may also assume that the cancellation will take effect immediately when the server receives the RST_STREAM frame, before any other data from that TCP connection is processed.

Abuse of this feature is called a Rapid Reset attack because it relies on the ability for an endpoint to send a RST_STREAM frame immediately after sending a request frame, which makes the other endpoint start working and then rapidly resets the request. The request is canceled, but leaves the HTTP/2 connection open.

The HTTP/2 Rapid Reset attack built on this capability is simple: The client opens a large number of streams at once as in the standard HTTP/2 attack, but rather than waiting for a response to each request stream from the server or proxy, the client cancels each request immediately.

The ability to reset streams immediately allows each connection to have an indefinite number of requests in flight. By explicitly canceling the requests, the attacker never exceeds the limit on the number of concurrent open streams. The number of in-flight requests is no longer dependent on the round-trip time (RTT), but only on the available network bandwidth.

In a typical HTTP/2 server implementation, the server will still have to do significant amounts of work for canceled requests, such as allocating new stream data structures, parsing the query and doing header decompression, and mapping the URL to a resource. For reverse proxy implementations, the request may be proxied to the backend server before the RST_STREAM frame is processed. The client on the other hand paid almost no costs for sending the requests. This creates an exploitable cost asymmetry between the server and the client.

Multiple software artifacts implementing HTTP/2 are affected. This advisory was originally ingested from the swift-nio-http2 repo advisory and their original conent follows.

swift-nio-http2 specific advisory

swift-nio-http2 is vulnerable to a denial-of-service vulnerability in which a malicious client can create and then reset a large number of HTTP/2 streams in a short period of time. This causes swift-nio-http2 to commit to a large amount of expensive work which it then throws away, including creating entirely new Channels to serve the traffic. This can easily overwhelm an EventLoop and prevent it from making forward progress.

swift-nio-http2 1.28 contains a remediation for this issue that applies reset counter using a sliding window. This constrains the number of stream resets that may occur in a given window of time. Clients violating this limit will have their connections torn down. This allows clients to continue to cancel streams for legitimate reasons, while constraining malicious actors.

Affected Packages
Ecosystem Package Vulnerable Versions Patched Version
go golang.org/x/net < 0.17.0
0.17.0
Related Dependabot Pull Requests
Bump com.hazelcast:hazelcast from 2.5 to 5.2.5
Closed 2 months ago
webdetails/cda #449
maven:com.hazelcast:hazelcast
webdetails
Bump com.hazelcast:hazelcast from 3.11.1 to 5.2.5
Closed 4 months ago
yogeshshah-1/distributed_crawler_scheduler #4
maven:com.hazelcast:hazelcast
yogeshshah-1
Bump the go_modules group across 3 directories with 16 updates
Closed 6 months ago
hardihardi/meshery #40
go:golang.org/x/crypto go:helm.sh/helm/v3 +4 more
hardihardi
Bump google.golang.org/grpc from 1.45.0 to 1.56.3
Closed 6 months ago
bostin/SkyAPM-php-sdk #6
go:google.golang.org/grpc
bostin
Bump the go_modules group across 7 directories with 10 updates
Closed 6 months ago
c6ai/examples #2
go:google.golang.org/grpc go:golang.org/x/net +3 more
c6ai
Bump google.golang.org/grpc from 1.55.0 to 1.56.3
Closed 7 months ago
nvb/benchdiff #23
go:google.golang.org/grpc
nvb
Bump the go_modules group across 1 directory with 10 updates
Closed 7 months ago
chenrui333/terradozer #5
go:google.golang.org/grpc go:golang.org/x/crypto +8 more
chenrui333
Bump google.golang.org/grpc from 1.46.2 to 1.56.3
Open 7 months ago
chef/chef-analyze #1166
go:google.golang.org/grpc
chef
Bump google.golang.org/grpc from 1.43.0 to 1.56.3 in /golang
Open 8 months ago
emilaukner/demo-dependabot #50
go:google.golang.org/grpc
emilaukner
Bump the go_modules group across 5 directories with 9 updates
Closed 8 months ago
ssushant0011/GoogleCloudPlatform-_-magic-modules #1
go:google.golang.org/grpc go:golang.org/x/crypto +3 more
ssushant0011
Bump google.golang.org/grpc from 1.48.0 to 1.56.3 in /grpc_check/tests/docker
Closed 8 months ago
PhorionTech/integrations-extras #3
go:google.golang.org/grpc
PhorionTech
Bump google.golang.org/grpc from 1.24.0 to 1.56.3
Open 8 months ago
dolthub/vitess #452
go:google.golang.org/grpc
dolthub
Bump google.golang.org/grpc from 1.23.0 to 1.56.3 in /linters/osv-scanner/test_data
Closed 8 months ago
ssushant0011/plugins #13
go:google.golang.org/grpc
ssushant0011
Bump the go_modules group across 1 directory with 4 updates
Closed 8 months ago
DavidHernandez21/kubernetes-event-exporter #29
go:google.golang.org/grpc go:golang.org/x/crypto +2 more
DavidHernandez21
Bump the maven group across 2 directories with 2 updates
Closed 9 months ago
togglz/togglz #1253
maven:org.apache.commons:commons-lang3 maven:com.hazelcast:hazelcast
togglz
Bump the go_modules group across 1 directory with 9 updates
Closed 9 months ago
jessegonzalez/external-dns #2
go:google.golang.org/grpc go:golang.org/x/net +5 more
jessegonzalez
Bump google.golang.org/grpc from 1.54.0 to 1.56.3 in /rechain in the go_modules group across 1 directory
Closed 9 months ago
REChain-Network-Solutions/DeCub #8
go:google.golang.org/grpc
REChain-Network-Solutions
Bump google.golang.org/grpc from 1.45.0 to 1.56.3
Closed 9 months ago
topaz-sh/go-grpc-authz #4
go:google.golang.org/grpc
topaz-sh
build(deps): bump google.golang.org/grpc from 1.23.0 to 1.56.3
Open 9 months ago
kmodules/external-snapshotter #1
go:google.golang.org/grpc
kmodules
Bump google.golang.org/grpc from 1.39.0 to 1.56.3
Closed 9 months ago
voyagermesh/hello-grpc #21
go:google.golang.org/grpc
voyagermesh
Bump google.golang.org/grpc from 1.34.0 to 1.56.3
Open 9 months ago
appscodelabs/quote-generator #19
go:google.golang.org/grpc
appscodelabs
Bump google.golang.org/grpc from 1.46.2 to 1.56.3
Closed 9 months ago
masx200/vtun #1
go:google.golang.org/grpc
masx200
Bump the go_modules group across 2 directories with 10 updates
Closed 10 months ago
github/vitess-gh #202
go:google.golang.org/grpc go:golang.org/x/crypto +4 more
github
Bump the go_modules group across 3 directories with 13 updates
Open 10 months ago
Hawthorne001/test-infra #402
go:golang.org/x/crypto go:github.com/golang-jwt/jwt/v4 +4 more
Hawthorne001
Bump the go_modules group across 1 directory with 3 updates
Open 10 months ago
voxxit/synology-csi-talos #1
go:google.golang.org/grpc go:google.golang.org/protobuf +1 more
voxxit
Bump the go_modules group across 11 directories with 3 updates
Closed 10 months ago
katter/UTMStack #6
go:google.golang.org/grpc go:golang.org/x/crypto +1 more
katter
build(deps): bump the go_modules group across 5 directories with 23 updates
Open 10 months ago
twcctz200/sourcegraph #13
go:google.golang.org/grpc go:golang.org/x/net +3 more
twcctz200
chore(deps): bump the go_modules group across 1 directory with 5 updates
Open 10 months ago
anonim-01/turbo #2
go:google.golang.org/grpc go:golang.org/x/crypto +3 more
anonim-01
build(deps): bump the go_modules group across 1 directory with 8 updates
Open 10 months ago
Centaurioun/rclone #5
go:google.golang.org/grpc go:golang.org/x/crypto +4 more
Centaurioun
Bump the go_modules group across 1 directory with 4 updates
Open 10 months ago
MetaMask/webauthn.io #12
go:google.golang.org/grpc go:github.com/prometheus/client_golang +2 more
MetaMask
Bump the go_modules group across 1 directory with 7 updates
Closed 10 months ago
master3395/transfer.sh #1
go:google.golang.org/grpc go:golang.org/x/crypto +5 more
master3395
Bump the go_modules group across 2 directories with 19 updates
Closed 11 months ago
JohnMatthiasWabwire/zadig #2
go:github.com/docker/docker go:helm.sh/helm/v3 +4 more
JohnMatthiasWabwire
Bump the go_modules group across 2 directories with 7 updates
Open 11 months ago
AKJUS/pranadb #2
go:google.golang.org/grpc go:golang.org/x/net +5 more
AKJUS
Build(deps): Bump google.golang.org/grpc from 1.47.0 to 1.56.3
Closed 11 months ago
hahuang65/ssm #11
go:google.golang.org/grpc
hahuang65
Bump the go_modules group across 2 directories with 9 updates
Closed 11 months ago
github/vitess-gh #199
go:google.golang.org/grpc go:golang.org/x/crypto +4 more
github
Bump com.hazelcast:hazelcast from 3.12.13 to 5.2.5 in /dubbo-plugin/dubbo-filter-cache
Closed 11 months ago
apache/dubbo #15726
maven:com.hazelcast:hazelcast
apache
Bump the go_modules group across 1 directory with 7 updates
Closed 11 months ago
skpr/fpm-metrics-adapter #15
go:google.golang.org/grpc go:golang.org/x/crypto +5 more
skpr
Bump google.golang.org/grpc from 1.36.0 to 1.56.3
Open 11 months ago
tdunlap607/kiam #4
go:google.golang.org/grpc
tdunlap607
Bump google.golang.org/grpc from 1.51.0 to 1.56.3 in the go_modules group across 1 directory
Closed 11 months ago
skpr/fpm-metrics-adapter #10
go:google.golang.org/grpc
skpr
Bump google.golang.org/grpc from 1.42.0 to 1.56.3 in /src/autoscaler
Closed 12 months ago
cloudfoundry/app-autoscaler #812
go:google.golang.org/grpc
cloudfoundry
chore(deps): bump the go_modules group across 1 directory with 9 updates
Open 12 months ago
thoroc/steampipe-plugin-gitlab #1
go:google.golang.org/grpc go:golang.org/x/oauth2 +4 more
thoroc
Bump google.golang.org/grpc from 1.49.0 to 1.56.3 in the go_modules group across 1 directory
Open 12 months ago
CSS-MB/cli #4
go:google.golang.org/grpc
CSS-MB
build(deps): bump google.golang.org/grpc from 1.55.0 to 1.56.3
Open 12 months ago
perkeep/perkeep #1710
go:google.golang.org/grpc
perkeep
Bump the go_modules group across 3 directories with 6 updates
Open 12 months ago
cloud-gov/stratos #133
go:google.golang.org/grpc go:golang.org/x/crypto +4 more
cloud-gov
Bump com.hazelcast:hazelcast from 5.1.3 to 5.2.5 in /application-workloads/hazelcase/hazelcast-vm-cluster/scripts in the maven group across 1 directory
Open 12 months ago
congiuluc/azure-quickstart-templates #2
maven:com.hazelcast:hazelcast
congiuluc
Bump the maven group across 2 directories with 1 update
Open 12 months ago
trumb/azure-quickstart-templates #1
maven:com.hazelcast:hazelcast
trumb
Bump com.hazelcast:hazelcast from 5.2.0 to 5.2.5 in /libraries-data
Open 12 months ago
TheNullablePrototype/tutorials #17
maven:com.hazelcast:hazelcast
TheNullablePrototype
Bump com.hazelcast:hazelcast from 5.1 to 5.2.5 in /application-workloads/hazelcase/hazelcast-vm-cluster/scripts in the maven group across 1 directory
Open 12 months ago
Codes-Exe/azure-quickstart-templates #11
maven:com.hazelcast:hazelcast
Codes-Exe
Bump com.hazelcast:hazelcast from 5.1.3 to 5.2.5 in /code_samples/paging_predicate_sample/main
Closed 12 months ago
hazelcast/hazelcast-nodejs-client #1563
maven:com.hazelcast:hazelcast
hazelcast
Bump com.hazelcast:hazelcast from 5.1 to 5.2.5 in /seatunnel-shade/seatunnel-hazelcast/seatunnel-hazelcast-base
Closed 12 months ago
apache/seatunnel #9917
maven:com.hazelcast:hazelcast
apache
Advisory Details
Published: October 10, 2023 almost 3 years ago
Updated: September 25, 2026 about 7 hours ago
CVSS Score: 6.9 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:A
EPSS: 100.00% 100th percentile
Source: Github
Classification: GENERAL
UUID: GSA_kwCzR0hTQS1xcHBqLWZtNXItaHhyM84AA2X2
PR Statistics
PR Status
Open 243 (44.1%)
Merged 44 (8.0%)
Closed 264 (47.9%)
Update Types
Major 35 (3.0%)
Minor 962 (81.3%)
Patch 169 (14.3%)
References