Bug 2273513 (CVE-2024-22189)

Summary: CVE-2024-22189 quic-go: memory exhaustion attack against QUIC's connection ID mechanism
Product: [Other] Security Response Reporter: Robb Gatica <rgatica>
Component: vulnerabilityAssignee: Product Security <prodsec-ir-bot>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: aarif, adudiak, alcohan, aprice, bdettelb, caswilli, davidn, dfreiber, dkuc, doconnor, drow, epacific, fjansen, gkamathe, gparvin, haoli, hkataria, jajackso, jburrell, jbuscemi, jcammara, jhardy, jmitchel, jneedle, jobarker, jsamir, jtanner, kaycoth, kegrant, koliveir, kshier, lbainbri, mabashia, mpierce, njean, oezr, omaciel, owatkins, pahickey, pbraun, rhaigner, sdawley, shvarugh, sidakwo, simaishi, smcdonal, stcannon, teagle, tfister, thavo, vkumar, yguenane, zsadeh
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: quic-go 0.42.0 Doc Type: If docs needed, set a value
Doc Text:
A flaw was found in quic-go. This issue may allow an attacker to trigger a denial of service by sending a large number of NEW_CONNECTION_ID frames that retire old connection IDs. The receiver is supposed to respond to each retirement frame with a RETIRE_CONNECTION_ID frame, but the attacker can prevent the receiver from sending out the vast majority of these RETIRE_CONNECTION_ID frames by selectively acknowledging received packets and collapsing the peers congestion window and by manipulating the peer's RTT estimate.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2273514, 2273515, 2273516, 2273517, 2275233, 2275234, 2275235, 2275236, 2275237    
Bug Blocks: 2273512    

Description Robb Gatica 2024-04-04 19:36:02 UTC
quic-go is an implementation of the QUIC protocol in Go. Prior to version 0.42.0, an attacker can cause its peer to run out of memory sending a large number of `NEW_CONNECTION_ID` frames that retire old connection IDs. The receiver is supposed to respond to each retirement frame with a `RETIRE_CONNECTION_ID` frame. The attacker can prevent the receiver from sending out (the vast majority of) these `RETIRE_CONNECTION_ID` frames by collapsing the peers congestion window (by selectively acknowledging received packets) and by manipulating the peer's RTT estimate. Version 0.42.0 contains a patch for the issue. No known workarounds are available.

https://github.com/quic-go/quic-go/commit/4a99b816ae3ab03ae5449d15aac45147c85ed47a
https://github.com/quic-go/quic-go/security/advisories/GHSA-c33x-xqrf-c478
https://seemann.io/posts/2024-03-19-exploiting-quics-connection-id-management
https://www.youtube.com/watch?v=JqXtYcZAtIA&t=3683s

Comment 1 Robb Gatica 2024-04-04 19:43:03 UTC
Created caddy tracking bugs for this issue:

Affects: epel-8 [bug 2273515]
Affects: epel-all [bug 2273514]
Affects: fedora-38 [bug 2273516]
Affects: fedora-39 [bug 2273517]

Comment 3 Anten Skrabec 2024-04-16 07:37:45 UTC
Created dnscrypt-proxy tracking bugs for this issue:

Affects: fedora-39 [bug 2275236]


Created golang-github-quic tracking bugs for this issue:

Affects: fedora-39 [bug 2275237]


Created receptor tracking bugs for this issue:

Affects: fedora-all [bug 2275234]


Created syncthing tracking bugs for this issue:

Affects: epel-8 [bug 2275233]
Affects: fedora-38 [bug 2275235]

Comment 7 errata-xmlrpc 2024-06-27 11:24:43 UTC
This issue has been addressed in the following products:

  Red Hat OpenShift Container Platform 4.16

Via RHSA-2024:0041 https://access.redhat.com/errata/RHSA-2024:0041

Comment 8 errata-xmlrpc 2024-08-07 15:39:41 UTC
This issue has been addressed in the following products:

  Red Hat OpenShift Service Mesh 2.6 for RHEL 8
  Red Hat OpenShift Service Mesh 2.6 for RHEL 9

Via RHSA-2024:5094 https://access.redhat.com/errata/RHSA-2024:5094

Comment 9 errata-xmlrpc 2024-10-28 13:22:11 UTC
This issue has been addressed in the following products:

  Red Hat Ansible Automation Platform 2.5 for RHEL 9
  Red Hat Ansible Automation Platform 2.5 for RHEL 8

Via RHSA-2024:8534 https://access.redhat.com/errata/RHSA-2024:8534