dmaengine: dw-edma: Serialize abort state updates
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: dmaengine: dw-edma: Serialize abort state updates dw_edma_abort_interrupt() drops vc.lock before changing request and status. issue_pending() can acquire the lock in that small window, observe the old busy state, and skip starting queued descriptors. Then the abort handler overwrites the channel status as idle, leaving the new descriptors stranded for good. Keep descriptor completion and the state transition in the same critical section.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From e63d79d1ffcd2201a2dbff1d7a1184b8f3ec74cf · fixed in 4a72f81b8681b2ad7705cf039974c443dcc8ff00; From e63d79d1ffcd2201a2dbff1d7a1184b8f3ec74cf · fixed in b7b8b08cd6422f7ed783226ac4aa6cebe398ab54; From e63d79d1ffcd2201a2dbff1d7a1184b8f3ec74cf · fixed in 0b028e5175590fb34ccbd537ff5b9cd386ce5747; From e63d79d1ffcd2201a2dbff1d7a1184b8f3ec74cf · fixed in 075de95d7a7cd8fecfb6fe1c685c9064fc6c9d76; From e63d79d1ffcd2201a2dbff1d7a1184b8f3ec74cf · fixed in e20c6539394ac8d70240b85bb5963c74a3a49789; From e63d79d1ffcd2201a2dbff1d7a1184b8f3ec74cf · fixed in 0c3294066c36d5980fd9c8192dcb53bb9ccd1f7b; From e63d79d1ffcd2201a2dbff1d7a1184b8f3ec74cf · fixed in f71c94c1a657492e015be227d44c4198a8e7a91d; From e63d79d1ffcd2201a2dbff1d7a1184b8f3ec74cf · fixed in dd80e259f65d932634e26d366570d71669ef6654
- Linux Linux
5.3
- KernelLinux
From 5.3.0 · fixed in 5.10.270; From 5.11.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.52; From 6.19.0 · fixed in 7.2.6
References 8
git.kernel.org
- stable/c/4a72f81b8681b2ad7705cf039974c443dcc8ff00
- stable/c/b7b8b08cd6422f7ed783226ac4aa6cebe398ab54
- stable/c/0b028e5175590fb34ccbd537ff5b9cd386ce5747
- stable/c/075de95d7a7cd8fecfb6fe1c685c9064fc6c9d76
- stable/c/e20c6539394ac8d70240b85bb5963c74a3a49789
- stable/c/0c3294066c36d5980fd9c8192dcb53bb9ccd1f7b
- stable/c/f71c94c1a657492e015be227d44c4198a8e7a91d
- stable/c/dd80e259f65d932634e26d366570d71669ef6654