公開:

【CVE-2024-53058】LinuxカーネルのstmmacドライバーにDMAバッファの処理に関する脆弱性、複数バージョンに影響

text: XEXEQ編集部
(記事は執筆時の情報に基づいており、現在では異なる場合があります)


記事の要約

  • LinuxカーネルのstmmacドライバーにDMA関連の脆弱性が発見
  • DMAバッファのマップ/アンマップ処理に不具合が存在
  • 複数のLinuxバージョンに影響する重要な修正を実施

Linuxカーネルのstmmacドライバーに存在するDMA処理の脆弱性

kernel.orgは2024年11月19日、LinuxカーネルのstmmacドライバーにDMAバッファのマップ/アンマップ処理に関する脆弱性を発見したことを公開した。この脆弱性は【CVE-2024-53058】として識別されており、非ページングSKBデータのDMAマッピングとアンマッピングの処理に不具合が存在することが判明している。[1]

この脆弱性は特定のプラットフォームにおいて、DMA AXIアドレス幅が40ビットまたは48ビットに設定されている場合や、32ビットに設定されている環境でTSO_MAX_BUFF_SIZEを超えるデータを処理する際に発生する可能性がある。DMAエンジンが未完了の記述子を処理している間にバッファがアンマップされることで、データの破損やIOMMUフォールトが引き起こされる危険性が確認された。

この問題に対する修正では、tx_q->tx_skbuff_dma[entry].bufへのDMAバッファアドレスの割り当て方法が見直された。非ページングデータとページングフラグメントの両方で一貫した処理を実現することで、DMAマップ/アンマップシーケンスの適切な制御が可能になっている。

影響を受けるLinuxバージョンの一覧

項目 詳細
影響を受けるバージョン Linux 4.7以降のすべてのバージョン
影響を受けないバージョン Linux 4.7未満、5.15.171以降の5.15系、6.1.116以降の6.1系、6.6.60以降の6.6系、6.11.7以降の6.11系、6.12以降
検証環境 DWXGMAC CORE 3.20a
関連コミット ece593fc9c00、a3ff23f7c3f0、07c9c26e3754、58d23d835eb4、66600fac7a98

DMAバッファについて

DMAバッファとは、Direct Memory Access(DMA)において使用される特別なメモリ領域のことを指す。主な特徴として、以下のような点が挙げられる。

  • CPUを介さずに周辺機器とメモリ間で直接データ転送が可能
  • 連続した物理メモリ領域を確保し高速なデータ転送を実現
  • デバイスドライバによる適切な管理と制御が必要

DMAバッファの適切な管理は、システムの安定性とパフォーマンスに直接的な影響を与える重要な要素となっている。今回のstmmacドライバーの脆弱性では、DMAバッファのマッピングとアンマッピングのタイミングが適切に制御されていないことが問題となっており、データの整合性やシステムの安定性に深刻な影響を及ぼす可能性が指摘されている。

stmmacドライバーの脆弱性に関する考察

stmmacドライバーにおけるDMAバッファの管理方法の見直しは、システムの安定性と信頼性の向上に大きく貢献する重要な更新となっている。特にDMA AXIアドレス幅が40ビットや48ビットに設定されている環境での安定性が向上し、大容量データ転送時のリスクが軽減されることが期待できるだろう。

今後の課題として、DMAバッファの管理方法をより柔軟かつ効率的にする仕組みの実装が求められる。特に異なるプラットフォームやハードウェア構成での互換性を維持しつつ、パフォーマンスを最適化する方法の検討が必要になってくるだろう。

また、stmmacドライバーの継続的な改善と機能拡張も重要な課題となっている。特にTSOの機能強化やDMAディスクリプタの効率的な管理など、より高度なネットワーク機能の実装と性能向上が期待される。

参考サイト

  1. ^ CVE. 「CVE Record | CVE」. https://www.cve.org/CVERecord?id=CVE-2024-53058, (参照 24-11-26).

※上記コンテンツはAIで確認しておりますが、間違い等ある場合はコメントよりご連絡いただけますと幸いです。

「セキュリティ」に関するコラム一覧「セキュリティ」に関するニュース一覧
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。