公開:

【CVE-2024-50258】Linuxカーネルのgso_max_size設定に起因する重大な脆弱性が発見、システムクラッシュのリスクに

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


記事の要約

  • Linuxカーネルにgso_max_size設定の脆弱性が発見
  • 小さな値の設定によりシステムクラッシュの可能性
  • 複数のバージョンで修正パッチが提供

Linuxカーネルのgso_max_size設定による深刻な脆弱性

Linuxカーネルにおいて、gso_max_sizeやgso_ipv4_max_sizeに小さな値を設定した際にシステムクラッシュを引き起こす重大な脆弱性【CVE-2024-50258】が2024年11月9日に公開された。sk_dst_gso_max_size()関数でアンダーフローが発生し、sk->sk_gso_max_sizeがデバイス制限を大きく超えてしまう問題が確認されている。[1]

この脆弱性は特にtcp_write_xmitやtcp_init_tso_segsなどの関数に影響を与え、システムの安定性を著しく損なう可能性がある。DIV_ROUND_UP関数を使用したskb->lenとmss_nowの計算において、524288/8が65535から0になるオーバーフローが発生し、BUG_ON条件をトリガーすることが判明した。

影響を受けるバージョンは4.16以降のLinuxカーネルであり、6.6.60、6.11.7、6.12-rc6などの最新バージョンですでに修正パッチが提供されている。修正では、gso_max_sizeとgso_ipv4_max_sizeに対する最小値チェックが実装され、アンダーフローの問題が解決された。

Linuxカーネルの影響バージョンと修正状況

バージョン 影響状況
4.16以前 影響なし
4.16~6.6.59 影響あり
6.6.60以降 修正済み
6.11.7以降 修正済み
6.12-rc6以降 修正済み

アンダーフローについて

アンダーフローとは、コンピュータプログラムにおいて変数や数値が許容される最小値を下回った際に発生する現象のことを指す。主な特徴として以下のような点が挙げられる。

  • 予期せぬ大きな値への変換が発生
  • システムの安定性に重大な影響を及ぼす
  • バッファオーバーフローの原因となる可能性

LinuxカーネルのGSO(Generic Segmentation Offload)機能において、gso_max_sizeの値が小さすぎる場合にアンダーフローが発生し、sk_gso_max_sizeが予期せぬ大きな値となってしまう。この問題はネットワークスタックの安定性に重大な影響を与え、システムクラッシュを引き起こす可能性が高いことが判明している。

Linuxカーネルの脆弱性に関する考察

LinuxカーネルのGSO機能における今回の脆弱性は、ネットワークスタックの基本的な実装に関わる重要な問題を浮き彫りにした。特に数値の境界値チェックの重要性が再認識され、セキュリティ面での慎重な実装の必要性が改めて示された形となっている。

今後はより包括的な境界値チェックの実装や、数値演算に関する厳密なバリデーション機構の導入が求められるだろう。特にネットワークスタックのような重要なコンポーネントでは、予期せぬ入力値に対する堅牢な防御機構の実装が不可欠となる。

また、オープンソースコミュニティによる迅速な脆弱性の発見と修正は、Linuxカーネルの信頼性向上に大きく貢献している。今後もコミュニティベースでの継続的なコードレビューと品質管理の強化が期待される。

参考サイト

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

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

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

コメントを残す

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