CVE-2024-26960

Siemens ProductCERT Advisory SSA-265688

Beschreibung

Im Linux-Kernel wurde folgende Schwachstelle behoben: `mm: swap: behebe Rennen zwischen free_swap_and_cache() und swapoff()` Es gab zuvor eine theoretische Möglichkeit, dass `swapoff()` ausgeführt werden und die Struktur `swap_info_struct` zerlegen konnte, während ein Aufruf von `free_swap_and_cache()` in einem anderen Thread lief. Dies hätte unter anderem dazu führen können, dass `swap_page_trans_huge_swapped()` (aufgerufen durch `free_swap_and_cache()`) auf das freigegebene Speicher für `swap_map` zugreift. Dies ist ein theoretisches Problem und ich konnte es nicht mit einem Testfall provozieren. Es gab jedoch Einigkeit basierend auf einer Code-Überprüfung, dass dies möglich ist (siehe Link unten). Es wird behoben, indem man `get_swap_device()/put_swap_device()` verwendet, was `swapoff()` zum Stillstand bringt. Es gab eine zusätzliche Überprüfung in `_swap_info_get()`, um zu bestätigen, dass der Swap-Eintrag nicht frei war. Diese ist in `get_swap_device()` nicht vorhanden, da sie im Allgemeinen aufgrund des Rennens zwischen dem Erhalten der Referenz und `swapoff` keinen Sinn macht. Daher wurde eine äquivalente Überprüfung direkt in `free_swap_and_cache()` hinzugefügt. Details dazu, wie man ein mögliches Problem provozieren kann (Dank an David Hildenbrand für die Ableitung): --8<----- `__swap_entry_free()` könnte der letzte Benutzer sein und zu "count == SWAP_HAS_CACHE" führen. `swapoff->try_to_unuse()` wird stoppen, sobald `si->inuse_pages==0`. Die Frage ist also: Könnte jemand das Folio zurückfordern und `si->inuse_pages==0` machen, bevor wir die Ausführung von `swap_page_trans_huge_swapped()` abgeschlossen haben. Stellen Sie sich folgendes vor: Ein 2 MiB Folio im Swap-Cache. Nur zwei Subseiten werden noch durch Swap-Einträge referenziert. Prozess 1 referenziert immer noch Subseite 0 über einen Swap-Eintrag. Prozess 2 referenziert immer noch Subseite 1 über einen Swap-Eintrag. Prozess 1 beendet. Ruft `free_swap_and_cache()`. -> count == SWAP_HAS_CACHE [dann, unterbrochen im Hypervisor etc.] Prozess 2 beendet. Ruft `free_swap_and_cache()`. -> count == SWAP_HAS_CACHE Prozess 2 geht weiter, durchläuft `swap_page_trans_huge_swapped()` und ruft `__try_to_reclaim_swap()` auf. `__try_to_reclaim_swap()->folio_free_swap()->delete_from_swap_cache()->put_swap_folio()->free_swap_slot()->swapcache_free_entries()->swap_entry_free()->swap_range_free()->... WRITE_ONCE(si->inuse_pages, si->inuse_pages - nr_entries);` Was verhindert, dass `swapoff` erfolgreich ist, nachdem Prozess 2 den Swap-Cache zurückgefordert hat, aber bevor Prozess 1 seinen Aufruf von `swap_page_trans_huge_swapped()` abgeschlossen hat? --8<-----

Metriken

Severity
high
kein öffentlicher PoC bekannt
7.0
Quelle: nvd-v3
7.5 %
Niedrig — CVE gehört zu den unteren 10 % der heute bewerteten CVEs.
0.2 %
Niedrig — Modell schätzt < 1 % Ausnutzungs-Wahrscheinlichkeit.
Veröffentlicht
2022-02-18 00:00 UTC

Re-Analyse & Statuswechsel

Chronologie der NVD-Audit-Events für diese CVE — Reanalyses, CVSS-Updates, CPE-Diffs.

  1. CVE Modified2026-08-04 11:17 UTC· 416baaa9-dc9f-4396-8d5f-8c081fb06d67
    • CVSS V3.1: AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

Betroffene Betriebssysteme

  • linux

    amazon / amazon_linux

  • linux

    suse / basesystem_module15

  • linux

    debian / debian_linux10.0

  • linux

    debian / debian_linux11.0

  • linux

    debian / debian_linux12.0

  • linux

    debian / debian_linux13.0

  • linux

    suse / development_tools_module15

  • linux

    redhat / enterprise_linux10.0

  • linux

    redhat / enterprise_linux8.0

  • linux

    redhat / enterprise_linux9.0

  • linux

    redhat / enterprise_linux_aus8.4

  • linux

    redhat / enterprise_linux_aus8.6

  • linux

    redhat / enterprise_linux_eus10.0

  • linux

    redhat / enterprise_linux_eus8.4

  • linux

    redhat / enterprise_linux_eus9.4

  • linux

    redhat / enterprise_linux_eus9.6

  • linux

    redhat / enterprise_linux_tus8.6

  • linux

    redhat / enterprise_linux_tus8.8

  • linux

    redhat / enterprise_linux_update_services_for_sap_solutions8.6

  • linux

    redhat / enterprise_linux_update_services_for_sap_solutions8.8

  • linux

    redhat / enterprise_linux_update_services_for_sap_solutions9.0

  • linux

    redhat / enterprise_linux_update_services_for_sap_solutions9.2

  • linux

    opensuse / leap15.3

  • linux

    opensuse / leap15.4

Betroffene Produkte

Aus der Hersteller-/CERT-Meldung extrahierte Produkte und Versionsbereiche. Ein Version-Range wie „<4.14.6“ impliziert die Update-Empfehlung „auf 4.14.6 oder höher aktualisieren“.

  • android

    :linux_kernel::0

  • android

    :linux_kernel:Kernel

  • arista

    cloudvision_agni2024.4.0 – 2025.2.2

  • arista

    cloudvision_portal2024.2.0 – 2026.1.0

  • arista

    velocloud_edge4.5.0 – 6.4.1

  • arista

    velocloud_gateway

  • arista

    velocloud_orchestrator

  • bitnami

    java-min1.9.0

  • Dell

    ECS3.8.1.0

  • Dell

    NetWorkerVirtual Edition

  • Dell

    NetWorkervProxy

  • Dell

    PowerProtect Data Domain7.10.1.70

  • Dell

    PowerProtect Data Domain7.13.1.40

  • Dell

    PowerProtect Data Domain8.3.1.10

  • Dell

    PowerProtect Data Domain8.4.0.0

  • Dell

    PowerProtect Data Domain< 7.10.1.70

    gefixt in 7.10.1.70

  • Dell

    PowerProtect Data Domain< 7.13.1.40

    gefixt in 7.13.1.40

  • Dell

    PowerProtect Data Domain< 8.3.1.10

    gefixt in 8.3.1.10

  • Dell

    PowerProtect Data Domain< 8.4.0.0

    gefixt in 8.4.0.0

  • Dell

    PowerScale OneFSNode Firmware Package 14.1

  • Dell

    Secure Connect GatewayAppliance 5.32.00.18

  • Hitachi Energy

    RTU500< 13.9.1

    gefixt in 13.9.1

  • HPE

    HP-UXOpenSSL Software <A.03.00.15.001

  • IBM

    AIX7.2

Quellen & Referenzen

Verknüpfte CVEs

423 weitere CVEs anzeigen
IDCVE-2024-26960
Siemens ProductCERT Advisory SSA-265688 — CVE-2024-26960 | NEOSEC Intel