{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2023-52664",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2024-03-07T14:49:46.885Z",
        "datePublished": "2024-05-17T13:45:05.545Z",
        "dateUpdated": "2026-08-05T09:10:55.411Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T09:10:55.411Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: atlantic: eliminate double free in error handling logic\n\nDriver has a logic leak in ring data allocation/free,\nwhere aq_ring_free could be called multiple times on same ring,\nif system is under stress and got memory allocation error.\n\nRing pointer was used as an indicator of failure, but this is\nnot correct since only ring data is allocated/deallocated.\nRing itself is an array member.\n\nChanging ring allocation functions to return error code directly.\nThis simplifies error handling and eliminates aq_ring_free\non higher layer."
                }
            ],
            "metrics": [
                {
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                        "baseScore": 7.8,
                        "baseSeverity": "HIGH"
                    },
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "AV:L - The double-free is reached only through local netdev open/close paths (ndo_open → aq_nic_init → aq_vec_ring_alloc/aq_ptp_ring_alloc, ethtool ringparam, feature/XDP restarts, suspend/resume), not via processing of remotely received packets.\nAC:L - A local attacker can reliably induce the required GFP_KERNEL/dma_alloc_coherent failure with memory pressure (as in the reported stress+ifconfig reproducer) and repeatedly drive interface reinit, so success does not depend on conditions outside attacker control.\nPR:L - Triggering ifup/ethtool needs CAP_NET_ADMIN checked via ns_capable(net->user_ns), which is Low for an atlantic device/VF in a tenant netns; alternatively an unprivileged user can supply the memory-pressure half while ordinary admin reopen activity hits the path.\nUI:N - The attacker induces memory pressure and/or issues the interface reconfiguration themselves; no separate victim action is required for the faulty cleanup to run.\nS:U - Impact is confined to host-kernel slab/DMA state under a single security authority; the defect does not cross a VM, IOMMU, or sandbox boundary.\nC:H - Double-free of ring buff_ring/dx_ring allocations allows freelist aliasing and reclaim of the freed objects with attacker-controlled data, yielding a use-after-free readable/disclosure primitive.\nI:H - The same double-free freelist corruption enables heap reuse and overwrite of live kernel objects, providing write and control-flow hijack primitives suitable for privilege escalation.\nA:H - The second free of already-released ring memory trips allocator double-free detection or corrupts the freelist, causing a kernel BUG/oops/panic and denying service on NIC bring-up."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/net/ethernet/aquantia/atlantic/aq_ptp.c",
                        "drivers/net/ethernet/aquantia/atlantic/aq_ring.c",
                        "drivers/net/ethernet/aquantia/atlantic/aq_ring.h",
                        "drivers/net/ethernet/aquantia/atlantic/aq_vec.c"
                    ],
                    "versions": [
                        {
                            "version": "018423e90bee8978105eaaa265a26e70637f9f1e",
                            "lessThan": "0edb3ae8bfa31cd544b0c195bdec00e036002b5d",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "018423e90bee8978105eaaa265a26e70637f9f1e",
                            "lessThan": "c11a870a73a3bc4cc7df6dd877a45b181795fcbf",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "018423e90bee8978105eaaa265a26e70637f9f1e",
                            "lessThan": "d1fde4a7e1dcc4d49cce285107a7a43c3030878d",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "018423e90bee8978105eaaa265a26e70637f9f1e",
                            "lessThan": "b3cb7a830a24527877b0bc900b9bd74a96aea928",
                            "status": "affected",
                            "versionType": "git"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/net/ethernet/aquantia/atlantic/aq_ptp.c",
                        "drivers/net/ethernet/aquantia/atlantic/aq_ring.c",
                        "drivers/net/ethernet/aquantia/atlantic/aq_ring.h",
                        "drivers/net/ethernet/aquantia/atlantic/aq_vec.c"
                    ],
                    "versions": [
                        {
                            "version": "4.11",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "4.11",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.1.77",
                            "lessThanOrEqual": "6.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.6.16",
                            "lessThanOrEqual": "6.6.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.7.4",
                            "lessThanOrEqual": "6.7.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.8",
                            "lessThanOrEqual": "*",
                            "status": "unaffected",
                            "versionType": "original_commit_for_fix"
                        }
                    ]
                }
            ],
            "cpeApplicability": [
                {
                    "nodes": [
                        {
                            "operator": "OR",
                            "negate": false,
                            "cpeMatch": [
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.11",
                                    "versionEndExcluding": "6.1.77"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.11",
                                    "versionEndExcluding": "6.6.16"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.11",
                                    "versionEndExcluding": "6.7.4"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.11",
                                    "versionEndExcluding": "6.8"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/0edb3ae8bfa31cd544b0c195bdec00e036002b5d"
                },
                {
                    "url": "https://git.kernel.org/stable/c/c11a870a73a3bc4cc7df6dd877a45b181795fcbf"
                },
                {
                    "url": "https://git.kernel.org/stable/c/d1fde4a7e1dcc4d49cce285107a7a43c3030878d"
                },
                {
                    "url": "https://git.kernel.org/stable/c/b3cb7a830a24527877b0bc900b9bd74a96aea928"
                }
            ],
            "title": "net: atlantic: eliminate double free in error handling logic",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        },
        "adp": [
            {
                "providerMetadata": {
                    "orgId": "af854a3a-2127-422b-91ae-364da2661108",
                    "shortName": "CVE",
                    "dateUpdated": "2024-08-02T23:11:34.900Z"
                },
                "title": "CVE Program Container",
                "references": [
                    {
                        "url": "https://git.kernel.org/stable/c/0edb3ae8bfa31cd544b0c195bdec00e036002b5d",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/c11a870a73a3bc4cc7df6dd877a45b181795fcbf",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/d1fde4a7e1dcc4d49cce285107a7a43c3030878d",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/b3cb7a830a24527877b0bc900b9bd74a96aea928",
                        "tags": [
                            "x_transferred"
                        ]
                    }
                ]
            },
            {
                "metrics": [
                    {
                        "other": {
                            "type": "ssvc",
                            "content": {
                                "id": "CVE-2023-52664",
                                "role": "CISA Coordinator",
                                "options": [
                                    {
                                        "Exploitation": "none"
                                    },
                                    {
                                        "Automatable": "no"
                                    },
                                    {
                                        "Technical Impact": "partial"
                                    }
                                ],
                                "version": "2.0.3",
                                "timestamp": "2024-09-10T15:42:18.912718Z"
                            }
                        }
                    }
                ],
                "title": "CISA ADP Vulnrichment",
                "providerMetadata": {
                    "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
                    "shortName": "CISA-ADP",
                    "dateUpdated": "2024-09-11T17:33:20.159Z"
                }
            }
        ]
    }
}