CVE-2021-47282 in Linux情報

要約

〜によって VulDB • 2026年06月05日

Linuxカーネルにおいて、以下の脆弱性が修正されました。

spi: bcm2835: スレーブが4つを超える場合の配列外アクセスを修正

コミット 571e31fa60b3(「spi: bcm2835: ->prepare_message() のために CS レジスタ値をキャッシュする」)は、コンパイル時にスレーブ数を3に制限しました。この制限が必要だったのは、ドライバのプライベートデータ内に存在し、各スレーブごとのレジスタ値を含む静的サイズ配列 prepare_cs[] があったためです。

このコミットは、コントローラの num_chipselect を3に設定することで実行時にその制限を強制しようとしていました:チップセレクト番号がより高いスレーブは spi_add_device() によって拒否されます。

しかし、このコミットは num_chipselect が *ネイティブ* チップセレクトの数しか制限しないことを見落としていました。デバイスツリーで3つを超えるスレーブに対してGPIOチップセレクトが指定されている場合、num_chipselect は of_spi_get_gpio_numbers() によって黙って引き上げられ、その結果、静的サイズ配列 prepare_cs[] への配列外アクセスが発生します。

安定版へバックポート可能な応急処置として、許可されるスレーブ数を24に増やし(これは「誰にとっても十分すぎるはず」です)、スレーブの ->setup に制限を適用し、num_chipselect を3(コントローラがサポートするネイティブチップセレクトの数)に戻します。今後の for-next 向けコミットにより、任意のスレーブ数が許可されるようになります。

If you want to get best quality of vulnerability data, you may have to visit VulDB.

予約する

2024年05月21日

モデレーション

承諾済み

エントリ

VDB-265703

EPSS

0.00231

アクティビティ

非常低い

ソース

Do you know our Splunk app?

Download it now for free!