Linux Kernelの脆弱性(IPV6_FRAG_ESCAPE: CVE-2026-53362, CVE-2026-53366)

07/22/2026にLinux Kernelの脆弱性(IPV6_FRAG_ESCAPE: CVE-2026-53362, CVE-2026-53366)が公開されました。今回はこちらの脆弱性の概要と、各ディストリビューションの対応について纏めます。

[過去関連リンク(最新5件)]

IPV6_FRAG_ESCAPE

CentOS / RHEL 10 向けの、信頼性の高い非特権コンテナからのエスケープの概念実証(PoC)になります。

GitHubには悪用方法のコンセプトが記載されていますが、トリガーについては意図的に説明が省かれています。

Scope

  • 対象: CentOS / RHEL 10 (カーネル 6.12.x、6.12.0-242.el10)。
  • 開始: ネットワークで隔離されたコンテナ内の非特権プロセスであり、非特権ユーザーの名前空間にアクセスできます。
  • 結果:ホストの初期ネームスペースとルートファイルシステムに、対話型のルートシェルが確立されます。

Requirements

  • CONFIG_INIT_ON_ALLOC_DEFAULT_ONRHEL/CentOS のデフォルト設定である off が有効になっている必要があります。この PoC では、初期化されていないスラブバイトに古いポインタを挿入します。init_on_alloc=1これによりスロットがゼロになり、この特定の手法ではカーネルがクラッシュするだけです 。これはこの手法の限界であり、バグの限界ではありません。修正と CVE が公開され次第、これらのカーネルも対象とする、別の手法を用いた完全なエクスプロイトが提供される予定です。
  • 5レベルページング(LA57、57ビット線形アドレス)。ページテーブルウォークは5レベルに対応するように設計されており、起動チェックは5レベルページテーブルがないと実行されません。4レベルCPUの場合は、ウォーク処理のリファクタリングが必要になります。
  • /sys/kernel/btf/vmlinuxが利用可能かつ閲覧可能(RHEL / CentOSではデフォルト)。

テスト済みカーネル

CentOS Stream 106.12.0-242.el10ルート、コンテナエスケープ
RHEL 106.12.0-228.el10httpd_t コンテキストエスケープ

CVSS/プライオリティ

  • CVE-2026-53362
    • 影響するバージョン
      • N/A
    • Priority/CVSS SCORE
      • NVD/CNA(CVSSv4): Not disclosed
      • NVD/CNA(CVSSv31): 7.8 High
      • Red Hat(CVSSv4): Not disclosed
      • Red Hat(CVSSv31): 7.8 : Important
    • CVSS Vector
      • NVD/CNA(CVSSv4): Not disclosed
      • NVD/CNA(CVSSv31): CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
      • Red Hat(CVSSv4): Not disclosed
      • Red Hat(CVSSv31): CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
    • EPSS Score/Percentile
      • DATE(JST): 2026-07-22
      • EPSS: 0.001230000
      • Percentile: 0.024850000
  • CVE-2026-53366
    • 影響するバージョン
      • N/A
    • Priority/CVSS SCORE
      • NVD/CNA(CVSSv4): Not disclosed
      • NVD/CNA(CVSSv31): 7.8 High
      • Red Hat(CVSSv4): Not disclosed
      • Red Hat(CVSSv31): 7.0 : Moderate
    • CVSS Vector
      • NVD/CNA(CVSSv4): Not disclosed
      • NVD/CNA(CVSSv31): CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
      • Red Hat(CVSSv4): Not disclosed
      • Red Hat(CVSSv31): CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
    • EPSS Score/Percentile
      • DATE(JST): 2026-07-22
      • EPSS: 0.001560000
      • Percentile: 0.051810000

修正方法

各ディストリビューションの情報を確認してください。

CVE概要(詳細はCVEのサイトをご確認ください)

  • https://www.cve.org/CVERecord?id=CVE-2026-53362
    • ipv6: ページングされた割り当てパスの fraggap を考慮するように変更
    • __ip6_append_data() では、ページングされた割り当ての分岐 (MSG_MORE / NETIF_F_SG / large fraglen) が実行されると、alloclen と pagedlen は次のように計算されます: alloclen = fragheaderlen + transhdrlen; pagedlen = datalen – transhdrlen; datalen には既に fraggap が含まれています (datalen = length + fraggap)。fraggap がゼロでない場合、これは最初の skb ではなく、transhdrlen はゼロです。前の skb から引き継がれた fraggap バイトは、新しい skb の線形領域のフラグメント ヘッダーのすぐ後にコピーされます。そのため、線形領域は fraggap バイトだけ小さくなり、pagedlen は同じ量だけ大きくなり、コピーによって skb->end を超えて末尾の skb_shared_info に書き込まれます。権限のないユーザーは、MSG_MORE と MSG_SPLICE_PAGES を併用した UDPv6 ソケットを介してこれをトリガーできます。
  • https://www.cve.org/CVERecord?id=CVE-2026-53366
    • ipv4: ページングされた割り当てパスの fraggap を考慮するように変更
    • __ip_append_data() では、ページングされた割り当ての分岐が実行されると、alloclen と pagedlen は次のように計算されます。alloclen = fragheaderlen + transhdrlen; pagedlen = datalen – transhdrlen; datalen には既に fraggap が含まれていますが、前の skb から引き継がれた fraggap バイトは、後続の skb_copy_and_csum_bits() によって、新しい skb の線形領域のオフセット transhdrlen にコピーされます。そのため、線形領域は fraggap バイト分だけ小さくなり、pagedlen は同じ量だけ大きくなります。ページングされていない分岐では、alloclen を fraglen に設定しますが、datalen に fraggap が含まれているため、fraggap は既に考慮されています。ページングされた分岐を、alloclen に fraggap を追加し、pagedlen から減算することで、整合性を保ちます。この調整後、ページパス上のコピーはもはや -fraggap に縮退しなくなるため、古い計算式を説明する古いコメントを削除します。

主なディストリビューションの対応方法

詳細は、各ディストリビューションの提供元にご確認ください

対処方法

各ディストリビューションの案内に従い、アップデートを行ってください。

[参考]

タイトルとURLをコピーしました