Skip to content
AppleGHSA-qppj-fm5r-hxr3

HTTP/2 Stream Cancellation Attack

Medium5.3CVE-2023-44487 · Published Oct 10, 2023

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 `Channel`s 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.

GitHub advisory

Affected versions

PackageAffectedFixed in
swift-nio-http2
Product
< 1.28.01.28.0
Details and references
CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Severity from
GitHub (reviewed advisory)
Weakness
CWE-400

More Apple advisories

All Apple
Advisory
Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Response Splitting') in swift-nio
Medium5.3Sep 27, 2022
Improper detection of complete HTTP body decompression
High7.5Sep 20, 2022
Apple: denial of service
High7.5Mar 10, 2022
Apple: denial of service
High7.5Feb 11, 2022
Apple: denial of service
High7.5Feb 11, 2022
Apple: denial of service
High7.5Feb 11, 2022

Critical advisories by email

Wednesdays: the week’s critical and high advisories in the AI and data stack, with the fixed versions. Only in weeks that have some.

Double opt-in. Unsubscribe any time.