CVE-2026-43061 PUBLISHED

serial: 8250: Fix TX deadlock when using DMA

Assigner: Linux
Reserved: 01.05.2026 Published: 05.05.2026 Updated: 05.05.2026

In the Linux kernel, the following vulnerability has been resolved:

serial: 8250: Fix TX deadlock when using DMA

dmaengine_terminate_async does not guarantee that the __dma_tx_complete callback will run. The callback is currently the only place where dma->tx_running gets cleared. If the transaction is canceled and the callback never runs, then dma->tx_running will never get cleared and we will never schedule new TX DMA transactions again.

This change makes it so we clear dma->tx_running after we terminate the DMA transaction. This is "safe" because serial8250_tx_dma_flush is holding the UART port lock. The first thing the callback does is also grab the UART port lock, so access to dma->tx_running is serialized.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 7c47e637dfadfbc691dd297b91d81ef939ca2080 to 8190f9ab6ad90cb97652adbebd238b874a4ef70d (excl.)
  • affected from bf3f395b9c37956eca866c9e1679769ed7dcce68 to 79a19bd936bb35f56ef0ccab1b3b59ebce8c762d (excl.)
  • affected from d470522c597b73e63cca04f3012aec28185113b7 to f76d91271bcacbd759a2e4ee3ea61faa6a727ccf (excl.)
  • affected from 5e00346deb7bf40a4cf70e3716ac8e9a2409eb55 to d2719a0a9c3439abf67843a5504b7afccd9ded93 (excl.)
  • affected from c8a52c772c7c6de72257a435bcad03d3bb914a70 to 2a72403b985aea6b4aac3171830492f9a387f9e1 (excl.)
  • affected from 9e512eaaf8f4008c44ede3dfc0fbc9d9c5118583 to 5f6b17562f03fc65c7d3474ef8f1959b19d1ca41 (excl.)
  • affected from 9e512eaaf8f4008c44ede3dfc0fbc9d9c5118583 to b5ad887339503103d0fbe9827b16ad287597c275 (excl.)
  • affected from 9e512eaaf8f4008c44ede3dfc0fbc9d9c5118583 to a424a34b8faddf97b5af41689087e7a230f79ba7 (excl.)
  • Version bbec5998d7bd349730f59c959a8b00cfff816e34 is affected
  • Version 59f751db7f392fa7a58cbd972205982f7f4f5854 is affected
Vendor Linux
Product Linux
Versions Default: affected
  • Version 6.14 is affected
  • unaffected from 0 to 6.14 (excl.)
  • unaffected from 5.10.253 to 5.10.* (incl.)
  • unaffected from 5.15.203 to 5.15.* (incl.)
  • unaffected from 6.1.167 to 6.1.* (incl.)
  • unaffected from 6.6.130 to 6.6.* (incl.)
  • unaffected from 6.12.78 to 6.12.* (incl.)
  • unaffected from 6.18.20 to 6.18.* (incl.)
  • unaffected from 6.19.10 to 6.19.* (incl.)
  • unaffected from 7.0 to * (incl.)

References