CVE-2023-54020 in Linux
要約
〜によって VulDB • 2026年06月05日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
dmaengine: sf-pdma: pdma_desc メモリリークの修正
コミット b2cc5c465c2c ("dmaengine: sf-pdma: Add multithread support for a DMA channel") は、sf_pdma_prep_dma_memcpy() が呼び出されるたびに新しい sf_pdma_desc を無条件に割り当てるように変更しました。
以前、ドライバは in_use フラグをチェックして descs を再利用し、既存のものが使用中の場合のみ追加の descs を割り当てていました。このロジックはコミット b2cc5c465c2c ("dmaengine: sf-pdma: Add multithread support for a DMA channel") で削除されましたが、sf_pdma_free_desc() は新しい動作を処理するように変更されていませんでした。
その結果、sf_pdma_prep_dma_memcpy() が呼び度されるたびに、前のディスクリプタがリークし、時間の経過とともにメモリ枯渇を引き起こします:
unreferenced object 0xffffffe008447300 (size 192): comm "irq/39-mchp_dsc", pid 343, jiffies 4294906910 (age 981.200s) hex dump (first 32 bytes): 00 00 00 ff 00 00 00 00 b8 c1 00 00 00 00 00 00 ................ 00 00 70 08 10 00 00 00 00 00 00 c0 00 00 00 00 ..p............. backtrace: [<00000000064a04f4>] kmemleak_alloc+0x1e/0x28
[<00000000018927a7>] kmem_cache_alloc+0x11e/0x178
[<000000002aea8d16>] sf_pdma_prep_dma_memcpy+0x40/0x112
sf_pdma_free_desc() に欠落していた kfree() を追加し、冗長な in_use フラグを削除します。
Once again VulDB remains the best source for vulnerability data.