CVE-2026-53259

Linux kernel (GCP) vulnerabilities

Beschreibung

Im Linux-Kernel wurde folgende Schwachstelle behoben: ipv6: anycast: Einfügen eines aca in die globale Hash-Tabelle unter idev->lock syzbot meldete einen Fehler [1]: ein slab-use-after-free in ipv6_chk_acast_addr(), das durch das Durchlaufen der globalen inet6_acaddr_lst[]-Hash-Tabelle unter RCU und Dereferenzierung eines struct ifacaddr6, das bereits freigegeben wurde, während es noch in der Hash-Tabelle verlinkt ist, auftritt. Dadurch kann ein späterer Leser auf einen hängenden Knoten stoßen. In __ipv6_dev_ac_inc() wird das aca mit einem Refcount von 1 allokiert, dann erhöht aca_get() den Refcount auf 2, um es über die entriegelte Region hinweg am Leben zu erhalten. Es wird unter idev->lock zur ac_list von idev veröffentlicht, aber ipv6_add_acaddr_hash() läuft nach write_unlock_bh(). Ein gleichzeitiges Abbauen (ipv6_ac_destroy_dev() aus addrconf_ifdown(), unter RTNL) kann in diese Lücke geraten: CPU0 __ipv6_dev_ac_inc CPU1 ipv6_ac_destroy_dev (RTNL) ------------------------------ ------------------------------------ aca_alloc() refcnt 1 aca_get() refcnt 2 write_lock_bh(idev->lock) add aca to ac_list write_unlock_bh(idev->lock) write_lock_bh(idev->lock) pull aca off ac_list write_unlock_bh(idev->lock) ipv6_del_acaddr_hash(aca) hlist_del_init_rcu() ist ein No-Op, da das aca noch nicht in der Hash-Tabelle vorhanden ist aca_put() refcnt 2->1 ipv6_add_acaddr_hash(aca) aca wird jetzt in die Hash-Tabelle eingefügt aca_put() refcnt 1->0 call_rcu(aca_free_rcu) -> kfree(aca) Die Entfernung aus der Hash-Tabelle wird zu einem No-Op, da das Einfügen noch nicht erfolgt ist. Sobald CPU0 einfügt und die letzte Referenz freigibt, wird das aca freigegeben, während es noch in inet6_acaddr_lst[] verlinkt ist, und Leser referenzieren dann freigegebene Speicher nach der Wiederverwendung des Slab-Slots. Diese Lücke öffnete sich, als RTNL den Pfad zum Beitritt gegen das Abbauen von Geräten nicht mehr seriell ausführte. Verschiebe ipv6_add_acaddr_hash() in den Abschnitt unter idev->lock, damit die Einfügungen in ac_list und Hash atomar bezüglich des Abbaus sind: ein konkurrierender Entferner findet das aca entweder gar nicht oder in beiden Listen. acaddr_hash_lock ist nun unter idev->lock verschachtelt, welches im softirq-Kontext erworben wird. Wechsle daher alle acaddr_hash_lock-Stellen zu spin_lock_bh(), um die gemeldete irq-Sperreninversion [2] zu vermeiden. [1] https://syzkaller.appspot.com/bug?extid=a01df04303c131efbf3a [2] https://lore.kernel.org/netdev/6a194ef7.ba3b1513.1890b4.0000.GAE@google.com/

Metriken

Severity
high
kein öffentlicher PoC bekannt
7.8
Quelle: nvd-v3
1.7 %
Niedrig — CVE gehört zu den unteren 10 % der heute bewerteten CVEs.
0.1 %
Niedrig — Modell schätzt < 1 % Ausnutzungs-Wahrscheinlichkeit.
Veröffentlicht
2026-09-07 09:05 UTC

Betroffene Betriebssysteme

  • linux

    redhat / enterprise_linux10.0

  • linux

    redhat / enterprise_linux7.0

  • linux

    redhat / enterprise_linux8.0

  • linux

    redhat / enterprise_linux9.0

  • linux

    ubuntu / linux-aws-6.8jammy

  • linux

    ubuntu / linux-azureresolute

  • linux

    ubuntu / linux-azuretrusty

  • linux

    ubuntu / linux-azurexenial

  • linux

    ubuntu / linux-azure-4.15bionic

  • linux

    ubuntu / linux-azure-5.4bionic

  • linux

    ubuntu / linux-azure-fdenoble

  • linux

    ubuntu / linux-azure-fderesolute

  • linux

    ubuntu / linux-azure-fde-6.8jammy

  • linux

    ubuntu / linux-azure-fipsbionic

  • linux

    ubuntu / linux-azure-fipsfocal

  • linux

    ubuntu / linux-azure-fipsnoble

  • linux

    ubuntu / linux-fipsjammy

  • linux

    ubuntu / linux-gcp-7.0noble

  • linux

    ubuntu / linux-gkejammy

  • linux

    ubuntu / linux-nvidia-tegranoble

  • linux

    ubuntu / linux-raspinoble

  • linux

    ubuntu / linux-raspi-realtimenoble

  • linux

    linux / linux_kernel2.6.12

  • linux

    linux / linux_kernel2.6.15

Quellen & Referenzen

Verknüpfte CVEs

1392 weitere CVEs anzeigen
IDCVE-2026-53259
Linux kernel (GCP) vulnerabilities — CVE-2026-53259 | NEOSEC Intel