CVE-2026-90090 in Linux
要約
〜によって VulDB • 2026年09月18日
Linuxカーネルにおいて、以下の脆弱性が修正されました:
Bluetooth: btmtksdio: TXパスにおける境界外DMA読み込みの修正
btmtksdio_tx_packet()関数は転送サイズを256バイトのSDIOブロックサイズに切り上げますが、ホストコントローラにはSKBバッファがそのまま渡されます。
err = sdio_writesb(bdev->func, MTK_REG_CTDR, skb->data, round_up(skb->len, MTK_SDIO_BLOCK_SIZE));
skb->lenバイト分のみがパケットデータを含んでいるため、コントローラは初期化されていないメモリを最大255バイト読み込み、SDIOバス経由でデバイスに送信します。SKBの割り当て時にどの程度のtailroom(末尾余白)が含まれているかによっては、その読み込み処理がバッファの終端を超えて拡張される可能性があります。
パディングされた長さを事前に計算し、SKBに必要なtailroomがあることを確認した上で、skb_put_zero()を使用してパディング部分をゼロで埋めます。これにより skb->len がパディング分も含むようになり、sdio_writesb() は切り上げ処理を行う必要がなくなります。byte_tx ではヘッダとペイロードのみをカウントし続け、エラーパスでは SKB を復元して呼び出し元に再キューイングできるようにします。
skb->tail の背後への書き込みは安全です。これはドライバがバッファの所有権を持っており、「Bluetooth: btmtksdio: TX前にSKBの排他的な所有権を取得する」によってそれが保証されているためです。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.