{"api_version":"1","generated_at":"2026-09-17T23:51:45+00:00","cve":"CVE-2026-93170","urls":{"html":"https://cve.report/CVE-2026-93170","api":"https://cve.report/api/cve/CVE-2026-93170.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-93170","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-93170"},"summary":{"title":"dmaengine: xilinx_dma: Fix channel idle state management in AXIDMA and MCDMA interrupt handlers","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ndmaengine: xilinx_dma: Fix channel idle state management in AXIDMA and MCDMA interrupt handlers\n\nFix a race condition in AXIDMA and MCDMA irq handlers where the channel\ncould be incorrectly marked as idle and attempt spurious transfers when\ndescriptors are still being processed.\n\nThe issue occurs when:\n1. Multiple descriptors are queued and active.\n2. An interrupt fires after completing some descriptors.\n3. xilinx_dma_complete_descriptor() moves completed descriptors to\ndone_list.\n4. Channel is marked idle and start_transfer() is called even though\n   active_list still contains unprocessed descriptors.\n5. This leads to premature transfer attempts and potential descriptor\n   corruption or missed completions.\n\nOnly mark the channel as idle and start new transfers when the active list\nis actually empty, ensuring proper channel state management and avoiding\nspurious transfer attempts.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-09-17 17:18:12","updated_at":"2026-09-17 17:18:12"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/0b6d055edb55ecadadf54e930c2b4fab76fa9a5a","name":"https://git.kernel.org/stable/c/0b6d055edb55ecadadf54e930c2b4fab76fa9a5a","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/7f4b989d7d87381927b98d64492f8dcf979f57ab","name":"https://git.kernel.org/stable/c/7f4b989d7d87381927b98d64492f8dcf979f57ab","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/425630e9eea1f9f8912b8c6abf01e0dab1e27917","name":"https://git.kernel.org/stable/c/425630e9eea1f9f8912b8c6abf01e0dab1e27917","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/c3e943490ced0b9ad475844eda7661f6a9bcfb4a","name":"https://git.kernel.org/stable/c/c3e943490ced0b9ad475844eda7661f6a9bcfb4a","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/c27d16fd2358b2fc3e1ffaca03afd11dc28630ea","name":"https://git.kernel.org/stable/c/c27d16fd2358b2fc3e1ffaca03afd11dc28630ea","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/ec927657524be4438447944a58173c7baf7f2384","name":"https://git.kernel.org/stable/c/ec927657524be4438447944a58173c7baf7f2384","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/fdaf297ab275c6efecac5e87669c31bc89b74297","name":"https://git.kernel.org/stable/c/fdaf297ab275c6efecac5e87669c31bc89b74297","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/5459e02707b27a964ae72e028d3ff72a3b687c4a","name":"https://git.kernel.org/stable/c/5459e02707b27a964ae72e028d3ff72a3b687c4a","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-93170","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-93170","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c0bba3a99f0709c24c2c7ada7cb098966b1d791f 7f4b989d7d87381927b98d64492f8dcf979f57ab git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c0bba3a99f0709c24c2c7ada7cb098966b1d791f 5459e02707b27a964ae72e028d3ff72a3b687c4a git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c0bba3a99f0709c24c2c7ada7cb098966b1d791f 425630e9eea1f9f8912b8c6abf01e0dab1e27917 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c0bba3a99f0709c24c2c7ada7cb098966b1d791f fdaf297ab275c6efecac5e87669c31bc89b74297 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c0bba3a99f0709c24c2c7ada7cb098966b1d791f c27d16fd2358b2fc3e1ffaca03afd11dc28630ea git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c0bba3a99f0709c24c2c7ada7cb098966b1d791f ec927657524be4438447944a58173c7baf7f2384 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c0bba3a99f0709c24c2c7ada7cb098966b1d791f c3e943490ced0b9ad475844eda7661f6a9bcfb4a git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c0bba3a99f0709c24c2c7ada7cb098966b1d791f 0b6d055edb55ecadadf54e930c2b4fab76fa9a5a git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4.7","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 4.7 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.10.270 5.10.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15.221 5.15.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.1.188 6.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.157 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.110 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.52 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.6 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3-rc1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/dma/xilinx/xilinx_dma.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"7f4b989d7d87381927b98d64492f8dcf979f57ab","status":"affected","version":"c0bba3a99f0709c24c2c7ada7cb098966b1d791f","versionType":"git"},{"lessThan":"5459e02707b27a964ae72e028d3ff72a3b687c4a","status":"affected","version":"c0bba3a99f0709c24c2c7ada7cb098966b1d791f","versionType":"git"},{"lessThan":"425630e9eea1f9f8912b8c6abf01e0dab1e27917","status":"affected","version":"c0bba3a99f0709c24c2c7ada7cb098966b1d791f","versionType":"git"},{"lessThan":"fdaf297ab275c6efecac5e87669c31bc89b74297","status":"affected","version":"c0bba3a99f0709c24c2c7ada7cb098966b1d791f","versionType":"git"},{"lessThan":"c27d16fd2358b2fc3e1ffaca03afd11dc28630ea","status":"affected","version":"c0bba3a99f0709c24c2c7ada7cb098966b1d791f","versionType":"git"},{"lessThan":"ec927657524be4438447944a58173c7baf7f2384","status":"affected","version":"c0bba3a99f0709c24c2c7ada7cb098966b1d791f","versionType":"git"},{"lessThan":"c3e943490ced0b9ad475844eda7661f6a9bcfb4a","status":"affected","version":"c0bba3a99f0709c24c2c7ada7cb098966b1d791f","versionType":"git"},{"lessThan":"0b6d055edb55ecadadf54e930c2b4fab76fa9a5a","status":"affected","version":"c0bba3a99f0709c24c2c7ada7cb098966b1d791f","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/dma/xilinx/xilinx_dma.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"4.7"},{"lessThan":"4.7","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"5.10.*","status":"unaffected","version":"5.10.270","versionType":"semver"},{"lessThanOrEqual":"5.15.*","status":"unaffected","version":"5.15.221","versionType":"semver"},{"lessThanOrEqual":"6.1.*","status":"unaffected","version":"6.1.188","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.157","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.110","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.52","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.6","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3-rc1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.270","versionStartIncluding":"4.7","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.221","versionStartIncluding":"4.7","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.1.188","versionStartIncluding":"4.7","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.157","versionStartIncluding":"4.7","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.110","versionStartIncluding":"4.7","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.52","versionStartIncluding":"4.7","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.6","versionStartIncluding":"4.7","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3-rc1","versionStartIncluding":"4.7","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ndmaengine: xilinx_dma: Fix channel idle state management in AXIDMA and MCDMA interrupt handlers\n\nFix a race condition in AXIDMA and MCDMA irq handlers where the channel\ncould be incorrectly marked as idle and attempt spurious transfers when\ndescriptors are still being processed.\n\nThe issue occurs when:\n1. Multiple descriptors are queued and active.\n2. An interrupt fires after completing some descriptors.\n3. xilinx_dma_complete_descriptor() moves completed descriptors to\ndone_list.\n4. Channel is marked idle and start_transfer() is called even though\n   active_list still contains unprocessed descriptors.\n5. This leads to premature transfer attempts and potential descriptor\n   corruption or missed completions.\n\nOnly mark the channel as idle and start new transfers when the active list\nis actually empty, ensuring proper channel state management and avoiding\nspurious transfer attempts."}],"providerMetadata":{"dateUpdated":"2026-09-17T16:12:01.249Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/7f4b989d7d87381927b98d64492f8dcf979f57ab"},{"url":"https://git.kernel.org/stable/c/5459e02707b27a964ae72e028d3ff72a3b687c4a"},{"url":"https://git.kernel.org/stable/c/425630e9eea1f9f8912b8c6abf01e0dab1e27917"},{"url":"https://git.kernel.org/stable/c/fdaf297ab275c6efecac5e87669c31bc89b74297"},{"url":"https://git.kernel.org/stable/c/c27d16fd2358b2fc3e1ffaca03afd11dc28630ea"},{"url":"https://git.kernel.org/stable/c/ec927657524be4438447944a58173c7baf7f2384"},{"url":"https://git.kernel.org/stable/c/c3e943490ced0b9ad475844eda7661f6a9bcfb4a"},{"url":"https://git.kernel.org/stable/c/0b6d055edb55ecadadf54e930c2b4fab76fa9a5a"}],"title":"dmaengine: xilinx_dma: Fix channel idle state management in AXIDMA and MCDMA interrupt handlers","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-93170","datePublished":"2026-09-17T16:12:01.249Z","dateReserved":"2026-09-17T16:02:15.090Z","dateUpdated":"2026-09-17T16:12:01.249Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-09-17 17:18:12","lastModifiedDate":"2026-09-17 17:18:12","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"93170","Ordinal":"1","Title":"dmaengine: xilinx_dma: Fix channel idle state management in AXID","CVE":"CVE-2026-93170","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"93170","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\ndmaengine: xilinx_dma: Fix channel idle state management in AXIDMA and MCDMA interrupt handlers\n\nFix a race condition in AXIDMA and MCDMA irq handlers where the channel\ncould be incorrectly marked as idle and attempt spurious transfers when\ndescriptors are still being processed.\n\nThe issue occurs when:\n1. Multiple descriptors are queued and active.\n2. An interrupt fires after completing some descriptors.\n3. xilinx_dma_complete_descriptor() moves completed descriptors to\ndone_list.\n4. Channel is marked idle and start_transfer() is called even though\n   active_list still contains unprocessed descriptors.\n5. This leads to premature transfer attempts and potential descriptor\n   corruption or missed completions.\n\nOnly mark the channel as idle and start new transfers when the active list\nis actually empty, ensuring proper channel state management and avoiding\nspurious transfer attempts.","Type":"Description","Title":"dmaengine: xilinx_dma: Fix channel idle state management in AXID"}]}}}