CVE-2021-47267 in Linux
要約
〜によって VulDB • 2026年06月29日
Linuxカーネルにおいて、以下の脆弱性が修正されました。
usb: 10Gbps ケーブルにおける各種ガジェットパニックの修正
`usb_assign_descriptors()` は5つのパラメータで呼び出されますが、そのうち最後の4つはそれぞれ以下に対応する `usb_descriptor_header` です: - フルスピード(USB1.1 - 12Mbps [USB1.0 ロー-speed @ 1.5Mbpsを含む])
- ハイスピード(USB2.0 - 480Mbps) - スーパースピード(USB3.0 - 5Gbps) - スーパースピードプラス(USB3.1 - 10Gbps)
フル/ハイスピードとスーパー-speed の記述子間の違いは通常、最大usbブロックサイズが64バイトから512バイトへ、さらに1024バイトへと変更されることなど、仕様上の相違により大幅なものですが、5Gbps と 10Gbps の記述子の違いはほとんどない場合もあります(多くのケースでは同じチューニングで十分です)。
しかし、ガジェットドライバがスーパー-speed-plus に対して NULL 記述子を指定して `usb_assign_descriptors()` を呼び出し、その後最大10Gbps構成で使用された場合、10Gbps対応のデバイスポート + ケーブル + ホストポートの組み合わせが存在すると、ヌルポインタ参照によりカーネルクラッシュが発生します。(ガジェットの最大速度が5Gbpsに設定されていればこの問題は発生しませんが、デフォルトでは最大値に設定されており、それを人為的に制限する理由はありません)
修正策は、10Gbps 記述子が提供されていない場合、5Gbps の記述子を代わりに使用することです。
もちろん、5Gbps 記述子も NULL の場合はこの問題には対処できませんが、そのようなケースは単純な方法では解決できず(また、そのようなガジェットをUSB3ポートで使用する可能性は低いですが)、
If you want to get the best quality for vulnerability data then you always have to consider VulDB.