{"id":"CVE-2026-72089","state":"PUBLISHED","title":"accel/ivpu: Reject firmware log with size smaller than header","description":"In the Linux kernel, the following vulnerability has been resolved:\n\naccel/ivpu: Reject firmware log with size smaller than header\n\nfw_log_from_bo() validates the tracing buffer header_size and that the\nlog fits within the BO, but never checks that log->size is at least\nlog->header_size. fw_log_print_buffer() then computes:\n\n  u32 data_size = log->size - log->header_size;\n\nwhich underflows to a near-U32_MAX value when firmware reports a log whose\nsize is smaller than its header. That huge data_size defeats the\nlog_start/log_end bounds clamps added by commit dd1311bcf0e6 (\"accel/ivpu:\nAdd bounds checks for firmware log indices\"), so fw_log_print_lines() reads\nfar past the small real data region of the BO. A size of 0 also makes\nfw_log_from_bo() advance the offset by 0, causing the callers to loop\nforever on the same header.\n\nReject logs whose size is smaller than the header (which also rejects\nsize == 0).","publishedAt":"2026-08-15T05:52:36.800Z","updatedAt":"2026-08-17T05:40:09.108Z","severity":{"score":7.1,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d4e4257afa6ed5205eda993180401fc2c20e4b60","status":"affected","lessThan":"5592a207e158b738d9c1d27f208dbbea13ae7606","versionType":"git"},{"version":"d4e4257afa6ed5205eda993180401fc2c20e4b60","status":"affected","lessThan":"dc9a1cda2e46d0254730a6f93cfe48532895f33c","versionType":"git"},{"version":"d4e4257afa6ed5205eda993180401fc2c20e4b60","status":"affected","lessThan":"257321a1c036da417f5d9c47b95c7e58f62bf263","versionType":"git"},{"version":"d4e4257afa6ed5205eda993180401fc2c20e4b60","status":"affected","lessThan":"6920e62be4c969a68ce4ebc59da68c6cbc9512e5","versionType":"git"},{"version":"d4e4257afa6ed5205eda993180401fc2c20e4b60","status":"affected","lessThan":"ddb44baed257560f192b145ed36cf8c0a412de47","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/accel/ivpu/ivpu_fw_log.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.6","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.6","versionType":"semver"},{"version":"6.6.148","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/accel/ivpu/ivpu_fw_log.c"]}],"references":["https://git.kernel.org/stable/c/5592a207e158b738d9c1d27f208dbbea13ae7606","https://git.kernel.org/stable/c/dc9a1cda2e46d0254730a6f93cfe48532895f33c","https://git.kernel.org/stable/c/257321a1c036da417f5d9c47b95c7e58f62bf263","https://git.kernel.org/stable/c/6920e62be4c969a68ce4ebc59da68c6cbc9512e5","https://git.kernel.org/stable/c/ddb44baed257560f192b145ed36cf8c0a412de47"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/72xxx/CVE-2026-72089.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-72089","state":"PUBLISHED","datePublished":"2026-08-15T05:52:36.800Z","dateUpdated":"2026-08-17T05:40:09.108Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-08-09T03:40:39.905Z"},"containers":{"cna":{"title":"accel/ivpu: Reject firmware log with size smaller than header","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\naccel/ivpu: Reject firmware log with size smaller than header\n\nfw_log_from_bo() validates the tracing buffer header_size and that the\nlog fits within the BO, but never checks that log->size is at least\nlog->header_size. fw_log_print_buffer() then computes:\n\n  u32 data_size = log->size - log->header_size;\n\nwhich underflows to a near-U32_MAX value when firmware reports a log whose\nsize is smaller than its header. That huge data_size defeats the\nlog_start/log_end bounds clamps added by commit dd1311bcf0e6 (\"accel/ivpu:\nAdd bounds checks for firmware log indices\"), so fw_log_print_lines() reads\nfar past the small real data region of the BO. A size of 0 also makes\nfw_log_from_bo() advance the offset by 0, causing the callers to loop\nforever on the same header.\n\nReject logs whose size is smaller than the header (which also rejects\nsize == 0)."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"d4e4257afa6ed5205eda993180401fc2c20e4b60","status":"affected","lessThan":"5592a207e158b738d9c1d27f208dbbea13ae7606","versionType":"git"},{"version":"d4e4257afa6ed5205eda993180401fc2c20e4b60","status":"affected","lessThan":"dc9a1cda2e46d0254730a6f93cfe48532895f33c","versionType":"git"},{"version":"d4e4257afa6ed5205eda993180401fc2c20e4b60","status":"affected","lessThan":"257321a1c036da417f5d9c47b95c7e58f62bf263","versionType":"git"},{"version":"d4e4257afa6ed5205eda993180401fc2c20e4b60","status":"affected","lessThan":"6920e62be4c969a68ce4ebc59da68c6cbc9512e5","versionType":"git"},{"version":"d4e4257afa6ed5205eda993180401fc2c20e4b60","status":"affected","lessThan":"ddb44baed257560f192b145ed36cf8c0a412de47","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/accel/ivpu/ivpu_fw_log.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.6","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.6","versionType":"semver"},{"version":"6.6.148","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.97","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.40","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.5","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/accel/ivpu/ivpu_fw_log.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/5592a207e158b738d9c1d27f208dbbea13ae7606"},{"url":"https://git.kernel.org/stable/c/dc9a1cda2e46d0254730a6f93cfe48532895f33c"},{"url":"https://git.kernel.org/stable/c/257321a1c036da417f5d9c47b95c7e58f62bf263"},{"url":"https://git.kernel.org/stable/c/6920e62be4c969a68ce4ebc59da68c6cbc9512e5"},{"url":"https://git.kernel.org/stable/c/ddb44baed257560f192b145ed36cf8c0a412de47"}],"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 bug is in Intel NPU (ivpu) firmware log parsing reached only via local debugfs reads/writes or automatic driver recovery/coredump paths after submitting work through the DRM render node; there is no network-facing entry point.\nAC:L - An unprivileged local user can repeatedly submit NPU jobs to provoke firmware faults/timeouts that leave malformed tracing headers and then reliably trigger kernel log parsing during recovery, coredump, or fw_log access without depending on uncontrollable timing or layout.\nPR:L - Exploitation requires only standard local access to the Intel NPU DRM render node to submit inference jobs and provoke recovery; it does not require root/CAP_SYS_ADMIN, and the device is not reachable from unprivileged user namespaces.\nUI:N - No victim interaction is required; the attacker triggers malformed firmware log processing themselves via job submission and the resulting automatic recovery/coredump path or by reading debugfs fw_log.\nS:U - Impact is confined to kernel memory and availability on the same host running the ivpu driver; it does not cross VM, container, or IOMMU security boundaries.\nC:H - Integer underflow makes data_size wrap to ~U32_MAX, bypassing index clamps so fw_log_print_lines performs a massive out-of-bounds read past the tracing BO and can disclose adjacent kernel memory via drm_printf/coredump output.\nI:N - The flaw is an out-of-bounds read and possible infinite loop during parsing; it does not provide an arbitrary kernel write, code execution, or other integrity-modifying primitive.\nA:H - A near-U32_MAX read can oops/panic the kernel when accessing unmapped memory, and log size 0 prevents offset advancement causing an infinite loop in fw_log_print_all_in_bo during coredump, reset, or debugfs access, hanging the system."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T05:40:09.108Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.6.148"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.12.97"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"6.18.40"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}