{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2026-68447",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2026-07-30T09:28:09.395Z",
        "datePublished": "2026-08-12T00:51:42.433Z",
        "dateUpdated": "2026-08-18T06:56:04.339Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-18T06:56:04.339Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdkfd: clamp v9 CRIU control stack checkpoint copy to BO size\n\nCRIU checkpoint copies the MQD control stack using cp_hqd_cntl_stack_size\nfrom hardware without bounding it to the allocated BO region. If the HW\nfield is larger than the queue's control stack allocation, memcpy reads\npast the BO into adjacent GTT memory and can leak kernel data to userspace.\n\nStore the page-aligned control stack BO size in mqd_manager and clamp\ncheckpoint copies and reported checkpoint sizes to\nmin(cp_hqd_cntl_stack_size, mm->ctl_stack_size). Apply the same bound\nfor multi-XCC v9.4.3 checkpoint layout.\n\n(cherry picked from commit 6c2abd0ec09e86c6323010673766f76050e28aa3)"
                }
            ],
            "metrics": [
                {
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
                        "baseScore": 7.1,
                        "baseSeverity": "HIGH"
                    },
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "AV:L - The vulnerable code is reached only through the AMDKFD_IOC_CRIU_OP ioctl on the local /dev/kfd character device; no network or remote path exists to amdkfd CRIU checkpoint handling.\nAC:L - kfd_criu_restore_queue() copies the entire user-supplied MQD blob verbatim into the kernel MQD, so the attacker directly chooses cp_hqd_cntl_stack_size and a subsequent checkpoint deterministically triggers the over-read; queues are evicted under p->mutex, so no race must be won.\nPR:L - The attacker needs access to /dev/kfd (render group) plus CAP_CHECKPOINT_RESTORE or CAP_SYS_ADMIN; CAP_CHECKPOINT_RESTORE is a delegated, non-root capability routinely granted to CRIU tooling and container checkpoint services, so this is a limited privilege rather than full administrative control.\nUI:N - The attacker performs the CRIU restore and checkpoint ioctls entirely on its own process; no action by any other user or victim is required.\nS:U - The out-of-bounds read and the resulting disclosure stay within the kernel's own security authority on the host; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - memcpy reads up to an attacker-chosen 32-bit length past the small MQD/control-stack BO into adjacent kernel GTT (vmap'd host memory) or VRAM, and criu_checkpoint_queues_device() copies the whole buffer to userspace, disclosing large amounts of unrelated kernel/GPU memory.\nI:N - The destination buffer is kzalloc'd using the same inflated size, so nothing is written out of bounds; the defect is purely an over-read with no kernel memory modification.\nA:H - With a large attacker-supplied cp_hqd_cntl_stack_size the memcpy walks far past the end of the small kmap'd BO (roughly 0x8000 bytes) into unmapped virtual addresses or beyond the VRAM BAR mapping, producing a kernel oops and killing the driver."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.h",
                        "drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c"
                    ],
                    "versions": [
                        {
                            "version": "3a9822d7bd623be9000cef8101ecf8479fa53f2c",
                            "lessThan": "a0d87beb2660a5098b2b0ecdc1e96810a9074ea9",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "3a9822d7bd623be9000cef8101ecf8479fa53f2c",
                            "lessThan": "426ffae6ecc7ec77d32bf8be065c21a1b881b084",
                            "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/gpu/drm/amd/amdkfd/kfd_mqd_manager.h",
                        "drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v9.c"
                    ],
                    "versions": [
                        {
                            "version": "5.18",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "5.18",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.1.6",
                            "lessThanOrEqual": "7.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.2",
                            "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": "5.18",
                                    "versionEndExcluding": "7.1.6"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.18",
                                    "versionEndExcluding": "7.2"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/a0d87beb2660a5098b2b0ecdc1e96810a9074ea9"
                },
                {
                    "url": "https://git.kernel.org/stable/c/426ffae6ecc7ec77d32bf8be065c21a1b881b084"
                }
            ],
            "title": "drm/amdkfd: clamp v9 CRIU control stack checkpoint copy to BO size",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        }
    }
}