JVNDB-2026-015342 | |
LinuxのLinux Kernelにおける境界外書き込みに関する脆弱性 | |
| 概要 | |
Linuxカーネルにおいて、以下の脆弱性が修正されました:usb: chipidea: udc: _ep_nuke()内のDMAおよびSGクリーンアップの修正です。ChipIdea UDCドライバは、アクティブな転送中に切断されたUSBデバイスが再接続された際に「ページアラインされていないsgバッファ」エラーが発生する可能性があります。これは_ep_nuke()がDMAバッファのマッピング解除やscatter-gatherバウンスバッファのクリーンアップを適切に行わずにリクエストをガジェットレイヤに返すために起こります。根本原因は、マルチセグメントDMA転送中に切断が発生すると、リクエストのnum_mapped_sgsフィールドおよびsgt.sglポインタが古い値のまま残ることです。リクエストは-ESHUTDOWN状態でガジェットドライバへ返されますが、DMA状態は依然としてアクティブな状態です。もしガジェットドライバが再初期化せずに接続再開時にこのリクエストを再利用すると、古いDMA状態により_hardware_enqueue()はDMAマッピングをスキップし(num_mapped_sgsが0でないため)、解放済みまたは無効なDMAアドレスを使用しようとしてアラインメントエラーやメモリ破壊が生じる可能性があります。正常な完了パスである_hardware_dequeue()は、リクエストを返す前にusb_gadget_unmap_request_by_dev()およびsglist_do_debounce()を適切に呼び出します。_ep_nuke()パスも同様のクリーンアップを行い、リクエストをクリーンで再利用可能な状態で返す必要があります。修正内容としては、_ep_nuke()にDMAマッピング解除およびバウンスバッファのクリーンアップを追加し、_hardware_dequeue()のクリーンアップシーケンスを反映しました。具体的には、num_mapped_sgsが設定されている場合はusb_gadget_unmap_request_by_dev()を呼び出し、バウンスバッファが存在する場合はcopy=falseでsglist_do_debounce()を呼び出します。これにより、エンドポイントシャットダウンによりリクエストが返される際に古いDMAマッピングが残らないことが保証されます。また、sglist_do_debounce()へのfalseパラメータは、転送が中断されたシャットダウンパスに適したデータコピーを防ぐ役割を果たします。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 7.8 (重要) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
Linux | |
|
| |
| 想定される影響 | |
当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 | |
| 対策 | |
リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
|
| |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/05/06 |
| 登録日 | 2026/05/14 |
| 最終更新日 | 2026/05/14 |



