{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2026-53300",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2026-06-09T07:44:35.397Z",
        "datePublished": "2026-06-26T19:40:57.186Z",
        "dateUpdated": "2026-08-05T12:34:58.086Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T12:34:58.086Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: enetc: fix NTMP DMA use-after-free issue\n\nThe AI-generated review reported a potential DMA use-after-free issue\n[1]. If netc_xmit_ntmp_cmd() times out and returns an error, the pending\ncommand is not explicitly aborted, while ntmp_free_data_mem()\nunconditionally frees the DMA buffer. If the buffer has already been\nreallocated elsewhere, this may lead to silent memory corruption. Because\nthe hardware eventually processes the pending command and perform a DMA\nwrite of the response to the physical address of the freed buffer.\n\nTo resolve this issue, this patch does the following modifications:\n\n1. Convert cbdr->ring_lock from a spinlock to a mutex\n\nThe lock was originally a spinlock in case NTMP operations might be\ninvoked from atomic context. After downstream support for all NTMP\ntables, no such usage has materialized. A mutex lock is now required\nbecause the driver now needs to reclaim used BDs and release associated\nDMA memory within the lock's context, while dma_free_coherent() might\nsleep.\n\n2. Introduce software command BD (struct netc_swcbd)\n\nThe hardware write-back overwrites the addr and len fields of the BD,\nso the driver cannot rely on the hardware BD to free the associated DMA\nmemory. The driver now maintains a software shadow BD storing the DMA\nbuffer pointer, DMA address, and size. And netc_xmit_ntmp_cmd() only\nreclaims older BDs when the number of used BDs reaches\nNETC_CBDR_CLEAN_WORK (16). The software BD enables correct DMA memory\nrelease. With this, struct ntmp_dma_buf and ntmp_free_data_mem() are no\nlonger needed and are removed.\n\n3. Require callers to hold ring_lock across netc_xmit_ntmp_cmd()\n\nnetc_xmit_ntmp_cmd() releases the ring_lock before the caller finishes\nconsuming the response. At this point, if a concurrent thread submits\na new command, it may trigger ntmp_clean_cbdr() and free the DMA buffer\nwhile it is still in use. Move ring_lock ownership to the caller to\nensure the response buffer cannot be reclaimed prematurely. So the\nhelpers ntmp_select_and_lock_cbdr() and ntmp_unlock_cbdr() are added.\n\nThese changes eliminate the DMA use-after-free condition and ensure safe\nand consistent BD reclamation and DMA buffer lifecycle management."
                }
            ],
            "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 vulnerable NTMP command path is reached through local ethtool ioctl/netlink RSS operations and driver/debugfs paths, not by processing remote network packets. A local process on a system with the affected ENETC4 device can invoke the relevant get-RSS path.\nAC:L - The attacker can repeatedly drive NTMP commands through ordinary ethtool RSS queries/updates and does not need to win a race against another principal. Because this is a DMA use-after-free and uncertainty is scored toward severity, the complexity is low.\nPR:L - The ethtool RSS get path is explicitly allowed to unprivileged local users and reaches `ntmp_rsst_query_entry`; set paths require CAP_NET_ADMIN but are not needed. This requires basic local execution, so it is PR:L under the provided rubric.\nUI:N - No victim action is required once the attacker has local execution. The attacker directly invokes the ioctl/netlink operation.\nS:U - The corruption affects kernel/driver-managed host memory within the same security authority. This is not a VM escape or separate IOMMU protection-domain bypass.\nC:H - The bug is a DMA use-after-free: after timeout the hardware may write a response to memory that has been freed and reallocated. Such kernel memory corruption is treated as capable of enabling information disclosure.\nI:H - The stale DMA write can corrupt reallocated kernel memory, potentially altering kernel data structures or enabling code execution. Per the UAF guidance, integrity impact is high.\nA:H - The same freed-memory DMA write can cause kernel memory corruption, oops, panic, or device/driver instability. Repeated triggering can therefore produce high availability impact."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/net/ethernet/freescale/enetc/ntmp.c",
                        "drivers/net/ethernet/freescale/enetc/ntmp_private.h",
                        "include/linux/fsl/ntmp.h"
                    ],
                    "versions": [
                        {
                            "version": "4701073c3debd16d7f534f3eb808bd9b50601c0c",
                            "lessThan": "37c8933064be714ee672b0a0523c2fd045b73b3d",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "4701073c3debd16d7f534f3eb808bd9b50601c0c",
                            "lessThan": "655d9ce9b1d3db0aa5271acb5e5101c66bd0d58b",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "4701073c3debd16d7f534f3eb808bd9b50601c0c",
                            "lessThan": "3cade698881eb238f88cbbfec82acc2110440a3f",
                            "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/freescale/enetc/ntmp.c",
                        "drivers/net/ethernet/freescale/enetc/ntmp_private.h",
                        "include/linux/fsl/ntmp.h"
                    ],
                    "versions": [
                        {
                            "version": "6.16",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "6.16",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.18.33",
                            "lessThanOrEqual": "6.18.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.0.10",
                            "lessThanOrEqual": "7.0.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.1",
                            "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": "6.16",
                                    "versionEndExcluding": "6.18.33"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.16",
                                    "versionEndExcluding": "7.0.10"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.16",
                                    "versionEndExcluding": "7.1"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/37c8933064be714ee672b0a0523c2fd045b73b3d"
                },
                {
                    "url": "https://git.kernel.org/stable/c/655d9ce9b1d3db0aa5271acb5e5101c66bd0d58b"
                },
                {
                    "url": "https://git.kernel.org/stable/c/3cade698881eb238f88cbbfec82acc2110440a3f"
                }
            ],
            "title": "net: enetc: fix NTMP DMA use-after-free issue",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        }
    }
}