公開:

【CVE-2024-50255】LinuxカーネルのBluetooth HCIモジュールでnullポインタ参照の脆弱性が発見、システムの安定性に影響

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


記事の要約

  • Linuxカーネルのhci_read_supported_codecsにnull-ptr-derefの脆弱性
  • __hci_cmd_sync_sk()の未知のopcodeに対する処理に問題
  • HCI_OP_READ_LOCAL_CODECSでnullポインタ参照が発生

LinuxカーネルのBluetooth HCIモジュールの脆弱性

kernel.orgは2024年11月9日にLinuxカーネルのBluetoothスタックにおける重要な脆弱性CVE-2024-50255を公開した。この脆弱性は__hci_cmd_sync_sk()関数が未知のopcodeに対してNULLを返すことにより、hci_read_supported_codecs関数でnullポインタ参照が発生する問題となっている。[1]

脆弱性の具体的な問題点として、__hci_cmd_sync_sk()関数がステータスイベントを返す際にNULLを返すことに加え、hci_ccテーブルに存在しないopcodeに対してもNULLを返すことが挙げられる。これによりHCI_OP_READ_LOCAL_CODECSのopcodeを処理する際にnullポインタ参照が発生し、システムの安定性に影響を与える可能性が高まっている。

この脆弱性はKASANによって検出され、6.9.0-ga6bcb805883c-dirtyバージョンのカーネルで確認されている。問題の発生箇所はnet/bluetooth/hci_codec.cの138行目であり、hci_read_supported_codecs関数内でnullポインタ参照が発生することが特定されている。

LinuxカーネルのBluetoothスタック脆弱性の影響範囲

バージョン 影響状況
Linux 5.17未満 影響なし
Linux 5.17-6.1.115 影響あり
Linux 6.1.116以降 修正済み
Linux 6.6.60以降 修正済み
Linux 6.11.7以降 修正済み

nullポインタ参照について

nullポインタ参照とは、プログラムが無効なメモリアドレスであるNULLポインタにアクセスしようとする深刻なプログラミングエラーのことを指す。主な特徴として、以下のような点が挙げられる。

  • プログラムのクラッシュや異常終了の主要な原因となる
  • メモリ管理における重大なセキュリティリスクとなる
  • デバッグが困難で、システムの安定性に影響を与える

Linuxカーネルのこの脆弱性では、Bluetooth HCIモジュールの__hci_cmd_sync_sk()関数がNULLを返すケースが適切に処理されていないことが問題となっている。hci_read_supported_codecs関数内でnullポインタ参照が発生することで、カーネルパニックやシステムクラッシュなどの深刻な問題を引き起こす可能性があるだろう。

Bluetooth HCIモジュールの脆弱性に関する考察

LinuxカーネルのBluetooth HCIモジュールにおけるnullポインタ参照の脆弱性は、Bluetoothデバイスの安定性に重大な影響を及ぼす可能性がある。特にコーデック情報の読み取り処理において発生する問題は、Bluetoothオーディオデバイスとの互換性や接続の安定性に影響を与える可能性が高いだろう。

今後の対策として、未知のopcodeに対する適切なエラーハンドリングの実装が必要不可欠となる。特にHCIプロトコルのような低レベルの実装では、堅牢なエラー処理とNULLチェックの徹底が重要であり、これらの実装により同様の問題の再発を防ぐことが可能となるだろう。

長期的な視点では、Bluetoothプロトコルスタック全体のコード品質向上が求められる。KASANのような動的解析ツールの活用や、より厳密なコードレビュープロセスの導入により、早期段階でのバグ検出と修正が可能になると考えられる。

参考サイト

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

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

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

コメントを残す

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