{"id":"CVE-2026-68466","state":"PUBLISHED","title":"mtd: rawnand: lpc32xx_slc: fail DMA transfer on completion timeout","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nmtd: rawnand: lpc32xx_slc: fail DMA transfer on completion timeout\n\nlpc32xx_xmit_dma() waits for the DMA completion callback but ignores\nwait_for_completion_timeout(). A timed out DMA transfer is therefore\nunmapped and reported as successful to the NAND read/write path.\n\nReturn -ETIMEDOUT when the completion wait expires. Terminate the DMA\nchannel before unmapping the scatterlist so the timed out transfer cannot\ncontinue to access the buffer after the error is returned.","publishedAt":"2026-08-15T05:51:25.212Z","updatedAt":"2026-08-17T05:39:10.682Z","severity":{"score":8.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"307e4f4c1d4e1575b3495ecc6e41aa2adc40f491","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"c367af37ce7238c96c6071337149099467160746","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"623c4d8e740debb4af28981e3d4e209f9d0260a4","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"bd4a622786f92e1f183f7557ab89dd32891cef60","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"8f5c3ee53a5dc1a0f7cfd780485f2c8b5d17f91d","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"cf7258f57d18026b8f77c0e80ff1805e9caf7250","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"cb2031f8b226efbd13735c07b075e5f14ec11f6d","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"17a8ce84964f243c8f89dc7353ac7e8d3137bc74","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/mtd/nand/raw/lpc32xx_slc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.7","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","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/mtd/nand/raw/lpc32xx_slc.c"]}],"references":["https://git.kernel.org/stable/c/307e4f4c1d4e1575b3495ecc6e41aa2adc40f491","https://git.kernel.org/stable/c/c367af37ce7238c96c6071337149099467160746","https://git.kernel.org/stable/c/623c4d8e740debb4af28981e3d4e209f9d0260a4","https://git.kernel.org/stable/c/bd4a622786f92e1f183f7557ab89dd32891cef60","https://git.kernel.org/stable/c/8f5c3ee53a5dc1a0f7cfd780485f2c8b5d17f91d","https://git.kernel.org/stable/c/cf7258f57d18026b8f77c0e80ff1805e9caf7250","https://git.kernel.org/stable/c/cb2031f8b226efbd13735c07b075e5f14ec11f6d","https://git.kernel.org/stable/c/17a8ce84964f243c8f89dc7353ac7e8d3137bc74"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:49.727Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/68xxx/CVE-2026-68466.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-68466","state":"PUBLISHED","datePublished":"2026-08-15T05:51:25.212Z","dateUpdated":"2026-08-17T05:39:10.682Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-30T09:28:09.396Z"},"containers":{"cna":{"title":"mtd: rawnand: lpc32xx_slc: fail DMA transfer on completion timeout","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nmtd: rawnand: lpc32xx_slc: fail DMA transfer on completion timeout\n\nlpc32xx_xmit_dma() waits for the DMA completion callback but ignores\nwait_for_completion_timeout(). A timed out DMA transfer is therefore\nunmapped and reported as successful to the NAND read/write path.\n\nReturn -ETIMEDOUT when the completion wait expires. Terminate the DMA\nchannel before unmapping the scatterlist so the timed out transfer cannot\ncontinue to access the buffer after the error is returned."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"307e4f4c1d4e1575b3495ecc6e41aa2adc40f491","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"c367af37ce7238c96c6071337149099467160746","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"623c4d8e740debb4af28981e3d4e209f9d0260a4","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"bd4a622786f92e1f183f7557ab89dd32891cef60","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"8f5c3ee53a5dc1a0f7cfd780485f2c8b5d17f91d","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"cf7258f57d18026b8f77c0e80ff1805e9caf7250","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"cb2031f8b226efbd13735c07b075e5f14ec11f6d","versionType":"git"},{"version":"2944a44da09e46b6db2fd2c3334f242b09e05c43","status":"affected","lessThan":"17a8ce84964f243c8f89dc7353ac7e8d3137bc74","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/mtd/nand/raw/lpc32xx_slc.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.7","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.7","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","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/mtd/nand/raw/lpc32xx_slc.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/307e4f4c1d4e1575b3495ecc6e41aa2adc40f491"},{"url":"https://git.kernel.org/stable/c/c367af37ce7238c96c6071337149099467160746"},{"url":"https://git.kernel.org/stable/c/623c4d8e740debb4af28981e3d4e209f9d0260a4"},{"url":"https://git.kernel.org/stable/c/bd4a622786f92e1f183f7557ab89dd32891cef60"},{"url":"https://git.kernel.org/stable/c/8f5c3ee53a5dc1a0f7cfd780485f2c8b5d17f91d"},{"url":"https://git.kernel.org/stable/c/cf7258f57d18026b8f77c0e80ff1805e9caf7250"},{"url":"https://git.kernel.org/stable/c/cb2031f8b226efbd13735c07b075e5f14ec11f6d"},{"url":"https://git.kernel.org/stable/c/17a8ce84964f243c8f89dc7353ac7e8d3137bc74"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The lpc32xx SLC NAND driver is only exercised through local kernel storage entry points—read/write/ioctl on /dev/mtd* or mtdblock, VFS access to flash-backed mounts (UBIFS/JFFS2/squashfs), or in-kernel mtd_read/mtd_write callers—not via any network packet or remote protocol handler.\nAC:L - An attacker with flash access can repeatedly issue MTD or filesystem read/write operations to stress the NAND controller and DMA engine, hunting for completion timeouts; they control I/O timing and can retry without depending on rare victim-only state beyond issuing local storage traffic.\nPR:L - Unprivileged local users on typical LPC32xx embedded systems can reach the vulnerable DMA path by reading executables or files from flash-backed root filesystems or world-readable mtdblock nodes; root-only /dev/mtd access is not required for the read path through lpc32xx_nand_read_page_syndrome.\nUI:N - Exploitation requires only attacker-initiated storage I/O against the NAND-backed device or mounted filesystem; no victim interaction such as plugging media, approving dialogs, or opening attacker-supplied content is needed.\nS:C - On DMA timeout the driver unmaps the scatterlist while in-flight DMA may continue, allowing the NAND DMA engine to access physical pages reused for unrelated kernel objects—crossing the intended DMA buffer security boundary of the driver.\nC:H - Continued DEV_TO_MEM DMA after dma_unmap_sg can write into repurposed physical pages and leak their prior contents upward; falsely reporting success also returns incomplete or attacker-influenced NAND page data, and post-unmap DMA enables arbitrary kernel memory disclosure via controlled page reuse.\nI:H - In-flight DMA after dma_unmap_sg provides a DMA-after-free style write primitive that can corrupt adjacent kernel heap or stack objects, enabling control-flow hijacking and privilege escalation beyond the intended NAND transfer buffer.\nA:H - DMA-after-unmap corruption commonly provokes kernel oops, panic, or hang; falsely successful timed-out writes can also corrupt flash contents or filesystem metadata on industrial LPC32xx appliances, causing sustained denial of service or device bricking."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T05:39:10.682Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7","versionEndExcluding":"5.10.261"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7","versionEndExcluding":"5.15.212"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7","versionEndExcluding":"6.1.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7","versionEndExcluding":"6.12.97"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7","versionEndExcluding":"6.18.40"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7","versionEndExcluding":"7.1.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.7","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}