Files
vuln-cve/data/2026/80xxx/CVE-2026-80747.json
T

222 lines
12 KiB
JSON

{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2026-80747",
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"state": "PUBLISHED",
"assignerShortName": "Linux",
"dateReserved": "2026-08-26T14:34:25.790Z",
"datePublished": "2026-09-03T08:26:28.938Z",
"dateUpdated": "2026-10-30T12:31:04.327Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-10-30T12:31:04.327Z"
},
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdkfd: Add bounds check for CRAT subtype length\n\nThe CRAT parser validates that the subtype header fits within the image,\nbut does not verify that the advertised subtype length fits. A malformed\nCRAT table with an oversized length field causes out-of-bounds reads when\nkfd_parse_subtype() casts the header to specific subtype structures.\n\nAdd validation that sub_type_hdr + length does not exceed the image\nboundary before parsing the subtype contents.\n\n(cherry picked from commit 48e1d1e6e8798aef0312e68d8e586021b5b3cf4d)"
}
],
"metrics": [
{
"cvssV3_1": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:H",
"baseScore": 8,
"baseSeverity": "HIGH"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerable kfd_parse_crat_table() runs only during amdgpu/amdkfd bring-up (kfd_topology_init at module load and kfd_topology_add_device on GPU probe). On affected kernels, ACPI CRAT is copied from firmware via acpi_get_table(\"CRAT\"); there is no network, ioctl, or /dev/kfd path to this parser.\nAC:L - A malicious ACPI CRAT can set subtype length so only the 8-byte generic header fits in the remaining image while kfd_parse_subtype() casts to larger structs (cache, CU, iolink). The out-of-bounds read is deterministic at boot with no races or attacker-uncontrollable memory layout.\nPR:N - Exploitation requires only a crafted ACPI CRAT in platform firmware/UEFI parsed automatically at boot via kfd_create_crat_image_acpi(). No Linux user account, capability, or /dev/kfd access is needed; only control of firmware-supplied CRAT contents before KFD topology initialization.\nUI:N - CRAT parsing occurs automatically during kernel boot and amdgpu/KFD module initialization when topology is built. No user mount, file open, or other discretionary action is required beyond powering on hardware that contains the malicious ACPI table.\nS:U - Impact is confined to kernel heap out-of-bounds reads and corrupted topology metadata within the host kernel security domain. This is not a guest/host VM escape, container sandbox breakout, or IOMMU/DMA boundary bypass.\nC:H - kfd_parse_subtype() casts the generic header to large subtype structures and reads past the CRAT buffer boundary (e.g., cache sibling_map[32], iolink, computeunit fields). Leaked adjacent kernel heap bytes populate topology objects exposed via world-readable /sys/class/kfd/kfd/topology/ attributes (0444).\nI:L - Out-of-bounds read values (sizes, proximity domains, sibling maps, bandwidth fields) are stored into kmalloc'd kernel topology structures (mem_props, cache_props, io_link_props), modifying kernel metadata with attacker-influenced data derived from reads past the allocation.\nA:H - Out-of-bounds reads during early init can dereference unmapped pages and trigger a kernel oops or panic during amdgpu/KFD bring-up. Related malformed-CRAT parser bugs at the same code path also cause infinite-loop denial of service, confirming high availability impact from CRAT parsing flaws."
}
]
}
],
"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_crat.c"
],
"versions": [
{
"version": "5b5c4e40a37e858e2bff8cd91be8e972256392c4",
"lessThan": "1f9cc5375916b57acb1ad4443af7b4dbf347638a",
"status": "affected",
"versionType": "git"
},
{
"version": "5b5c4e40a37e858e2bff8cd91be8e972256392c4",
"lessThan": "fef8c8afcb85dce5ff115f82a148cdf87a9617b9",
"status": "affected",
"versionType": "git"
},
{
"version": "5b5c4e40a37e858e2bff8cd91be8e972256392c4",
"lessThan": "77b659fb104eb069ea7a61960699e4d1eea6567a",
"status": "affected",
"versionType": "git"
},
{
"version": "5b5c4e40a37e858e2bff8cd91be8e972256392c4",
"lessThan": "69164d6bdad5d6657e51436a3f602822f620a46a",
"status": "affected",
"versionType": "git"
},
{
"version": "5b5c4e40a37e858e2bff8cd91be8e972256392c4",
"lessThan": "ca91e0cc8087568e4b791648a7c01e804f48cb73",
"status": "affected",
"versionType": "git"
},
{
"version": "5b5c4e40a37e858e2bff8cd91be8e972256392c4",
"lessThan": "6e7566ba4739dd573c331adde1c96690f7a567bd",
"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_crat.c"
],
"versions": [
{
"version": "3.19",
"status": "affected"
},
{
"version": "0",
"lessThan": "3.19",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.1.191",
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.6.160",
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.12.114",
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.18.57",
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "7.1.10",
"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": "3.19",
"versionEndExcluding": "6.1.191"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.19",
"versionEndExcluding": "6.6.160"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.19",
"versionEndExcluding": "6.12.114"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.19",
"versionEndExcluding": "6.18.57"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.19",
"versionEndExcluding": "7.1.10"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.19",
"versionEndExcluding": "7.2"
}
]
}
]
}
],
"references": [
{
"url": "https://git.kernel.org/stable/c/1f9cc5375916b57acb1ad4443af7b4dbf347638a"
},
{
"url": "https://git.kernel.org/stable/c/fef8c8afcb85dce5ff115f82a148cdf87a9617b9"
},
{
"url": "https://git.kernel.org/stable/c/77b659fb104eb069ea7a61960699e4d1eea6567a"
},
{
"url": "https://git.kernel.org/stable/c/69164d6bdad5d6657e51436a3f602822f620a46a"
},
{
"url": "https://git.kernel.org/stable/c/ca91e0cc8087568e4b791648a7c01e804f48cb73"
},
{
"url": "https://git.kernel.org/stable/c/6e7566ba4739dd573c331adde1c96690f7a567bd"
}
],
"title": "drm/amdkfd: Add bounds check for CRAT subtype length",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
}
}