{
    "data_version": "4.0",
    "data_type": "CVE",
    "data_format": "MITRE",
    "CVE_data_meta": {
        "ID": "CVE-2024-22189",
        "ASSIGNER": "security-advisories@github.com",
        "STATE": "PUBLIC"
    },
    "description": {
        "description_data": [
            {
                "lang": "eng",
                "value": "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."
            }
        ]
    },
    "problemtype": {
        "problemtype_data": [
            {
                "description": [
                    {
                        "lang": "eng",
                        "value": "CWE-770: Allocation of Resources Without Limits or Throttling",
                        "cweId": "CWE-770"
                    }
                ]
            }
        ]
    },
    "affects": {
        "vendor": {
            "vendor_data": [
                {
                    "vendor_name": "quic-go",
                    "product": {
                        "product_data": [
                            {
                                "product_name": "quic-go",
                                "version": {
                                    "version_data": [
                                        {
                                            "version_affected": "=",
                                            "version_value": "< 0.42.0"
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                }
            ]
        }
    },
    "references": {
        "reference_data": [
            {
                "url": "https://github.com/quic-go/quic-go/security/advisories/GHSA-c33x-xqrf-c478",
                "refsource": "MISC",
                "name": "https://github.com/quic-go/quic-go/security/advisories/GHSA-c33x-xqrf-c478"
            },
            {
                "url": "https://github.com/quic-go/quic-go/commit/4a99b816ae3ab03ae5449d15aac45147c85ed47a",
                "refsource": "MISC",
                "name": "https://github.com/quic-go/quic-go/commit/4a99b816ae3ab03ae5449d15aac45147c85ed47a"
            },
            {
                "url": "https://seemann.io/posts/2024-03-19-exploiting-quics-connection-id-management",
                "refsource": "MISC",
                "name": "https://seemann.io/posts/2024-03-19-exploiting-quics-connection-id-management"
            },
            {
                "url": "https://www.youtube.com/watch?v=JqXtYcZAtIA&t=3683s",
                "refsource": "MISC",
                "name": "https://www.youtube.com/watch?v=JqXtYcZAtIA&t=3683s"
            }
        ]
    },
    "source": {
        "advisory": "GHSA-c33x-xqrf-c478",
        "discovery": "UNKNOWN"
    },
    "impact": {
        "cvss": [
            {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "HIGH",
                "baseScore": 7.5,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "NONE",
                "integrityImpact": "NONE",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
                "version": "3.1"
            }
        ]
    }
}