Linux Distros のパッチ未適用の脆弱性: CVE-2024-26759

medium Nessus プラグイン ID 228100

概要

Linux/Unix ホストには、ベンダーにより修正されていないことを示す脆弱性を持つ複数のパッケージがインストールされています。

説明

Linux/Unix ホストには、ベンダーが提供するパッチが利用できない脆弱性の影響を受ける複数のパッケージがインストールされています。

- mm/swap:スワップキャッシュをスキップする際の競合を修正します SWP_SYNCHRONOUS_IO のためにスワップキャッシュをスキップする際、2 つ以上のスレッドが同時に同じエントリをスワップインすると、異なるページ(A、B)を取得します。1 つのスレッド(T0)がスワップインを完了してページ (A) を PTE にインストールする前に、別のスレッド(T1)がページ (B) のスワップインを完了し、エントリswap_freeしてから、同じエントリを再利用して、変更された可能性のあるページをスワップアウトすることができます。PTE 値が変更されないため、pte_sameチェックイン(T0)が中断され、ABA 問題が発生します。スレッド(T0)は、停止したページ(A)をPTEにインストールし、データ破損を引き起こします。考えられるコールスタックの 1 つは、次のようになります: CPU0 CPU1
---- ---- do_swap_page() do_swap_page() を同じエントリで <direct swapin path> <direct swapin path> <alloc page A> <alloc page B> swap_read_folio() <- ページ A へ読み取り swap_read_folio() <- ページ B へ読み取り <slow on later locks or interrupt> <finished swapin first> ...set_pte_at() swap_free() <- エントリはフリーです <ページ B への書き込み、ページ A は停止しています> <swap out page B to same swap entry> pte_same() <- チェックに合格、PTE は変更されていないように見えますが、ページ A は停止しています! swap_free() <- ページ B コンテンツが失われました! set_pte_at() <- 古いページ A がインストールされています! また、ZRAM の場合、swap_free() により、スワップデバイスがエントリコンテンツを破棄できるため、ページ (B) を変更しなくても、CPU0 の swap_read_folio() が CPU1 の swap_free() より遅く発生すると、データ損失が発生する可能性もあります。これを修正するには、キャッシュフラグを使用してスワップエントリをピン留めし、それをスワップインできるスレッドを1つのスレッドのみとするswapcache_prepareを再利用し、並列コードがエントリをキャッシュに入れないようにします。PTのロックを解除した後、ピンを放します。レーサーは、まれで非常に短いイベントであるため、ただループして待つだけです。schedule_timeout_uninterruptible(1) 呼び出しが追加されて、繰り返されるページ障害が過剰に多くの CPU を浪費し、ライブロックを引き起こしたり、または perf 統計に過度に多くのノイズを追加したりすることが回避されます。同様のライブロックの問題が、コミット 029c4628b2eb で説明されています(mm:swap:スワップイン先読みでライブロックを取り除きます) リプロデューサー:この競合問題は、適切に構築されたリプリケーターとパッチ適用済みの brd(読み取りパスに遅延があること)を使用すると、簡単に発生させることができます:最新の 6.8 のメインラインでは、競合により引き起こされたデータ損失が簡単に観察できます: $ gcc -g -lpthread test-thread-swap-race.c &; ./a.out 32MB のメモリ領域を汚染しています... 交換を続けます... 第0ラウンドスタート...
65536人の労働者がスポーン...32746 人のワーカーがスポーンしました、完了するまで待ちます... ラウンド 0: 0x5aa00 のエラー、予想 32746、取得 32743、3 のデータ損失! ラウンド 0: 0x395200 のエラー、予想 32746、取得 32743、3 つのデータ損失! ラウンド 0: 0x3fd000 のエラー、予想 32746、32737、9 のデータ損失! ラウンド 0 失敗、15 データ損失! このリプロデューサーは、小さなスワップデバイスを使用して、同じメモリ領域を共有する複数のスレッドを生成します。2 つのスレッドごとに、マッピングされたページを 1 つずつ反対方向に更新し、競合を生み出そうとします。1 つの専用スレッドは madvise を使用してデータをスワップアウトし続けます。再生器は5分に1回程度の再現率を作ったので、生産ではレースが完全に可能になるはずです。このパッチの後、数百ラウンド以上リプリケーターを実行しましたが、データ損失は見られませんでした。パフォーマンスオーバーヘッドは最小です、microbenchmark スワップイン 10G から 32G zram: Before: 10934698 us After: 11157121 us キャッシュ: 13155355 us (Dropping SWP_SYNCHRONOUS_IO flag) [[email protected]: v4] (CVE-2024-26759)

Nessus は、ベンダーから報告されたパッケージの存在に依存していることに注意してください。

ソリューション

現時点で既知の解決策はありません。

参考資料

https://ubuntu.com/security/CVE-2024-26759

プラグインの詳細

深刻度: Medium

ID: 228100

ファイル名: unpatched_CVE_2024_26759.nasl

バージョン: 1.22

タイプ: Local

エージェント: unix

ファミリー: Misc.

公開日: 2025/3/5

更新日: 2026/10/29

サポートされているセンサー: Frictionless Assessment AWS, Frictionless Assessment Azure, Frictionless Assessment Agent, Nessus Agent, Agentless Assessment, Tenable Cloud Security, Tenable Self-Hosted Container Security, Nessus

リスク情報

VPR

リスクファクター: Low

スコア: 3

パーセンタイル: 23.18

CVSS v2

リスクファクター: Low

基本値: 3.8

現状値: 3.2

ベクトル: CVSS2#AV:L/AC:H/Au:S/C:N/I:N/A:C

CVSS スコアのソース: CVE-2024-26759

CVSS v3

リスクファクター: Medium

基本値: 5.5

現状値: 5.1

ベクトル: CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

現状ベクトル: CVSS:3.0/E:U/RL:U/RC:C

脆弱性情報

CPE: cpe:/o:canonical:ubuntu_linux:14.04:-:lts, cpe:/o:canonical:ubuntu_linux:16.04:-:lts, cpe:/o:canonical:ubuntu_linux:18.04:-:lts, cpe:/o:canonical:ubuntu_linux:20.04:-:lts, cpe:/o:canonical:ubuntu_linux:22.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:linux-allwinner-5.19, p-cpe:/a:canonical:ubuntu_linux:linux-aws-5.0, p-cpe:/a:canonical:ubuntu_linux:linux-aws-5.11, p-cpe:/a:canonical:ubuntu_linux:linux-aws-5.13, p-cpe:/a:canonical:ubuntu_linux:linux-aws-5.15, p-cpe:/a:canonical:ubuntu_linux:linux-aws-5.19, p-cpe:/a:canonical:ubuntu_linux:linux-aws-5.3, p-cpe:/a:canonical:ubuntu_linux:linux-aws-5.4, p-cpe:/a:canonical:ubuntu_linux:linux-aws-5.8, p-cpe:/a:canonical:ubuntu_linux:linux-aws-6.2, p-cpe:/a:canonical:ubuntu_linux:linux-aws-6.5, p-cpe:/a:canonical:ubuntu_linux:linux-aws-hwe, p-cpe:/a:canonical:ubuntu_linux:linux-aws, p-cpe:/a:canonical:ubuntu_linux:linux-azure-4.15, p-cpe:/a:canonical:ubuntu_linux:linux-azure-5.11, p-cpe:/a:canonical:ubuntu_linux:linux-azure-5.13, p-cpe:/a:canonical:ubuntu_linux:linux-azure-5.15, p-cpe:/a:canonical:ubuntu_linux:linux-azure-5.19, p-cpe:/a:canonical:ubuntu_linux:linux-azure-5.3, p-cpe:/a:canonical:ubuntu_linux:linux-azure-5.4, p-cpe:/a:canonical:ubuntu_linux:linux-azure-5.8, p-cpe:/a:canonical:ubuntu_linux:linux-azure-6.2, p-cpe:/a:canonical:ubuntu_linux:linux-azure-6.5, p-cpe:/a:canonical:ubuntu_linux:linux-azure-edge, p-cpe:/a:canonical:ubuntu_linux:linux-azure-fde-5.15, p-cpe:/a:canonical:ubuntu_linux:linux-azure-fde-5.19, p-cpe:/a:canonical:ubuntu_linux:linux-azure-fde-6.2, p-cpe:/a:canonical:ubuntu_linux:linux-azure-fde, p-cpe:/a:canonical:ubuntu_linux:linux-azure, p-cpe:/a:canonical:ubuntu_linux:linux-bluefield, p-cpe:/a:canonical:ubuntu_linux:linux-gcp-4.15, p-cpe:/a:canonical:ubuntu_linux:linux-gcp-5.11, p-cpe:/a:canonical:ubuntu_linux:linux-gcp-5.13, p-cpe:/a:canonical:ubuntu_linux:linux-gcp-5.15, p-cpe:/a:canonical:ubuntu_linux:linux-gcp-5.19, p-cpe:/a:canonical:ubuntu_linux:linux-gcp-5.3, p-cpe:/a:canonical:ubuntu_linux:linux-gcp-5.4, p-cpe:/a:canonical:ubuntu_linux:linux-gcp-5.8, p-cpe:/a:canonical:ubuntu_linux:linux-gcp-6.2, p-cpe:/a:canonical:ubuntu_linux:linux-gcp-6.5, p-cpe:/a:canonical:ubuntu_linux:linux-gcp, p-cpe:/a:canonical:ubuntu_linux:linux-gke-4.15, p-cpe:/a:canonical:ubuntu_linux:linux-gke-5.15, p-cpe:/a:canonical:ubuntu_linux:linux-gke-5.4, p-cpe:/a:canonical:ubuntu_linux:linux-gke, p-cpe:/a:canonical:ubuntu_linux:linux-gkeop-5.15, p-cpe:/a:canonical:ubuntu_linux:linux-gkeop-5.4, p-cpe:/a:canonical:ubuntu_linux:linux-gkeop, p-cpe:/a:canonical:ubuntu_linux:linux-hwe-5.11, p-cpe:/a:canonical:ubuntu_linux:linux-hwe-5.13, p-cpe:/a:canonical:ubuntu_linux:linux-hwe-5.15, p-cpe:/a:canonical:ubuntu_linux:linux-hwe-5.19, p-cpe:/a:canonical:ubuntu_linux:linux-hwe-5.4, p-cpe:/a:canonical:ubuntu_linux:linux-hwe-5.8, p-cpe:/a:canonical:ubuntu_linux:linux-hwe-6.2, p-cpe:/a:canonical:ubuntu_linux:linux-hwe-6.5, p-cpe:/a:canonical:ubuntu_linux:linux-hwe-edge, p-cpe:/a:canonical:ubuntu_linux:linux-hwe, p-cpe:/a:canonical:ubuntu_linux:linux-ibm-5.15, p-cpe:/a:canonical:ubuntu_linux:linux-ibm-5.4, p-cpe:/a:canonical:ubuntu_linux:linux-ibm, p-cpe:/a:canonical:ubuntu_linux:linux-intel-5.13, p-cpe:/a:canonical:ubuntu_linux:linux-intel-iot-realtime, p-cpe:/a:canonical:ubuntu_linux:linux-intel-iotg-5.15, p-cpe:/a:canonical:ubuntu_linux:linux-intel-iotg, p-cpe:/a:canonical:ubuntu_linux:linux-iot, p-cpe:/a:canonical:ubuntu_linux:linux-kvm, p-cpe:/a:canonical:ubuntu_linux:linux-lowlatency-hwe-5.15, p-cpe:/a:canonical:ubuntu_linux:linux-lowlatency-hwe-5.19, p-cpe:/a:canonical:ubuntu_linux:linux-lowlatency-hwe-6.2, p-cpe:/a:canonical:ubuntu_linux:linux-lowlatency-hwe-6.5, p-cpe:/a:canonical:ubuntu_linux:linux-lowlatency, p-cpe:/a:canonical:ubuntu_linux:linux-nvidia-6.2, p-cpe:/a:canonical:ubuntu_linux:linux-nvidia-6.5, p-cpe:/a:canonical:ubuntu_linux:linux-nvidia-tegra-5.15, p-cpe:/a:canonical:ubuntu_linux:linux-nvidia-tegra-igx, p-cpe:/a:canonical:ubuntu_linux:linux-nvidia-tegra, p-cpe:/a:canonical:ubuntu_linux:linux-nvidia, p-cpe:/a:canonical:ubuntu_linux:linux-oem-5.10, p-cpe:/a:canonical:ubuntu_linux:linux-oem-5.13, p-cpe:/a:canonical:ubuntu_linux:linux-oem-5.14, p-cpe:/a:canonical:ubuntu_linux:linux-oem-5.17, p-cpe:/a:canonical:ubuntu_linux:linux-oem-5.6, p-cpe:/a:canonical:ubuntu_linux:linux-oem-6.0, p-cpe:/a:canonical:ubuntu_linux:linux-oem-6.1, p-cpe:/a:canonical:ubuntu_linux:linux-oem-6.5, p-cpe:/a:canonical:ubuntu_linux:linux-oem, p-cpe:/a:canonical:ubuntu_linux:linux-oracle-5.0, p-cpe:/a:canonical:ubuntu_linux:linux-oracle-5.11, p-cpe:/a:canonical:ubuntu_linux:linux-oracle-5.13, p-cpe:/a:canonical:ubuntu_linux:linux-oracle-5.15, p-cpe:/a:canonical:ubuntu_linux:linux-oracle-5.3, p-cpe:/a:canonical:ubuntu_linux:linux-oracle-5.4, p-cpe:/a:canonical:ubuntu_linux:linux-oracle-5.8, p-cpe:/a:canonical:ubuntu_linux:linux-oracle-6.5, p-cpe:/a:canonical:ubuntu_linux:linux-oracle, p-cpe:/a:canonical:ubuntu_linux:linux-raspi-5.4, p-cpe:/a:canonical:ubuntu_linux:linux-raspi2, p-cpe:/a:canonical:ubuntu_linux:linux-raspi, p-cpe:/a:canonical:ubuntu_linux:linux-realtime, p-cpe:/a:canonical:ubuntu_linux:linux-riscv-5.11, p-cpe:/a:canonical:ubuntu_linux:linux-riscv-5.15, p-cpe:/a:canonical:ubuntu_linux:linux-riscv-5.19, p-cpe:/a:canonical:ubuntu_linux:linux-riscv-5.8, p-cpe:/a:canonical:ubuntu_linux:linux-riscv-6.5, p-cpe:/a:canonical:ubuntu_linux:linux-riscv, p-cpe:/a:canonical:ubuntu_linux:linux-starfive-5.19, p-cpe:/a:canonical:ubuntu_linux:linux-starfive-6.2, p-cpe:/a:canonical:ubuntu_linux:linux-starfive-6.5, p-cpe:/a:canonical:ubuntu_linux:linux-xilinx-zynqmp, p-cpe:/a:canonical:ubuntu_linux:linux

必要な KB アイテム: Host/local_checks_enabled, Host/cpu, global_settings/vendor_unpatched, Host/OS/identifier

エクスプロイトの容易さ: No known exploits are available

脆弱性公開日: 2024/4/3

参照情報

CVE: CVE-2024-26759