Description
In the Linux kernel, the following vulnerability has been resolved: dmaengine: fix use-after-free in dma_chan_put() and dma_release_channel() When dma_device_put() drops the last reference on chan->device->ref, dma_device_release() runs and may free the dma_device along with its channels. dma_chan_put() then still reads chan->device->owner via dma_chan_to_owner() for the trailing module_put(). KASAN catches it: slab-use-after-free in dma_chan_put+0x3e6/0x4c0 Read of size 8 by task insmod/6319 Freed by task 6319: kfree+0x225/0x470 dma_chan_put+0x395/0x4c0 dmaengine_put+0xf8/0x160 Cache the module owner in dma_chan_put() before the put so the trailing module_put() does not need chan->device.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
8ad342a863590b24ce77681b7e081363fb3333f7 to < b92c502595336a3cc5bb7a060170891366745a5daffected8ad342a863590b24ce77681b7e081363fb3333f7 to < 855187a88bdf762c46b6849307597e3e02bfc1d9affected8ad342a863590b24ce77681b7e081363fb3333f7 to < c9780b601438137494b407eb4301bb3de2587ac9affected8ad342a863590b24ce77681b7e081363fb3333f7 to < 07eb075b60d565a5e465a1945a80cc62807492adaffected8ad342a863590b24ce77681b7e081363fb3333f7 to < 9319dd64d5cdef851841c091f30424faa2284c31affected8ad342a863590b24ce77681b7e081363fb3333f7 to < 6cf31716b77a71c0d634106f4f3951377b8dc6dcaffected8ad342a863590b24ce77681b7e081363fb3333f7 to < 02bd02c585293634b213b142cba63cbf77891f6baffected8ad342a863590b24ce77681b7e081363fb3333f7 to < e873c74132f0c5f1452816cd9bb26208f0bba1e1affected
Linux Linux
Default version status: affected
5.6affected0 to < 5.6unaffected5.10.271 to ≤ 5.10.*unaffected5.15.222 to ≤ 5.15.*unaffected6.1.189 to ≤ 6.1.*unaffected6.6.158 to ≤ 6.6.*unaffected6.12.112 to ≤ 6.12.*unaffected6.18.54 to ≤ 6.18.*unaffected7.2.8 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/b92c502595336a3cc5bb7a060170891366745a5d ↗
- https://git.kernel.org/stable/c/855187a88bdf762c46b6849307597e3e02bfc1d9 ↗
- https://git.kernel.org/stable/c/c9780b601438137494b407eb4301bb3de2587ac9 ↗
- https://git.kernel.org/stable/c/07eb075b60d565a5e465a1945a80cc62807492ad ↗
- https://git.kernel.org/stable/c/9319dd64d5cdef851841c091f30424faa2284c31 ↗
- https://git.kernel.org/stable/c/6cf31716b77a71c0d634106f4f3951377b8dc6dc ↗
- https://git.kernel.org/stable/c/02bd02c585293634b213b142cba63cbf77891f6b ↗
- https://git.kernel.org/stable/c/e873c74132f0c5f1452816cd9bb26208f0bba1e1 ↗