公開:

【CVE-2024-50215】Linuxカーネルのnvmet-authに二重解放の脆弱性、複数バージョンで修正パッチをリリース

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


記事の要約

  • Linuxカーネルのnvmet-authに脆弱性が発見される
  • ctrl->dh_keyの解放後にNULL代入処理が必要に
  • 複数のLinuxバージョンで修正パッチがリリース

Linuxカーネルのnvmet-auth脆弱性

Linuxカーネルのnvmet-authモジュールにおいて、重大な脆弱性【CVE-2024-50215】が2024年11月9日に公開された。この脆弱性は、ctrl->dh_keyが同一コントローラに対する複数のnvmet_setup_dhgroup()呼び出しで使用される可能性があり、エラーパス上でkfree_sensitive後にNULL代入を行わないことで二重解放が発生する可能性があることが判明している。[1]

Linux Verification Center(linuxtesting.org)のSvaceツールによって発見されたこの脆弱性は、nvmet_destroy_auth()での二重解放を防ぐために、エラーパス上でメモリ解放後にNULL代入処理を追加する必要があることが明らかになった。この修正により、メモリ管理の安全性が大幅に向上することが期待される。

この脆弱性の影響を受けるLinuxバージョンは、バージョン6.0から6.11系まで広範囲に及んでいる。特にバージョン6.1.116、6.6.60、6.11.7以降のリリースでは修正パッチが適用され、セキュリティ上の懸念が解消されることとなった。

Linuxカーネルの影響バージョンまとめ

バージョン 影響状況
6.0 影響あり
6.1.116以降 修正済み
6.6.60以降 修正済み
6.11.7以降 修正済み
6.12-rc6 修正済み

二重解放について

二重解放とは、既に解放されたメモリ領域を再度解放しようとする操作のことであり、以下のような特徴がある。

  • メモリの破壊やシステムの不安定化を引き起こす可能性
  • セキュリティ上の脆弱性となる危険性
  • デバッグが困難なプログラムのクラッシュの原因

nvmet-authモジュールの脆弱性では、ctrl->dh_keyのメモリ領域が既にkfree_sensitiveによって解放された後、nvmet_destroy_auth()で再度解放されようとする問題が存在した。この問題は解放後のポインタをNULLに設定することで、二重解放を防ぐことが可能となる。

Linuxカーネルのメモリ管理に関する考察

Linuxカーネルにおけるメモリ管理の重要性は、システムの安定性とセキュリティに直結する重大な要素となっている。nvmet-authモジュールの脆弱性が示すように、メモリ解放後のポインタ管理は特に慎重な取り扱いが必要であり、今回のような修正によってシステムの信頼性が向上することが期待できるだろう。

今後のLinuxカーネル開発においては、静的解析ツールの活用がより一層重要になってくると考えられる。Svaceのような解析ツールを用いた早期の脆弱性発見と、それに基づく迅速な修正パッチの提供が、システムのセキュリティ維持には不可欠となってくるだろう。

メモリ管理に関する問題は、パフォーマンスとセキュリティのバランスを取る必要がある難しい課題である。自動化されたテストツールと人間による監査の組み合わせにより、より効果的な脆弱性の発見と修正が可能になると考えられる。

参考サイト

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

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

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

コメントを残す

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