CVE-2026-53264
net/sched: act_api: RCU mit verzögertem Freigeben für den Aktionslebenszyklus verwenden
- Veröffentlicht
- 25.06.2026
- Aktualisiert
- 05.08.2026
- CNA zuweisen
- Linux
- Beweise beobachtet
- 07.08.2026
Primäres CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HNiedrig · nächste 30 Tage
- Perzentil
- 15,6 %
- Modelldatum
- 21.09.2026
EPSS ist eine statistische Schätzung, keine Gewissheit oder ein Maß für die Auswirkung. Kombinieren Sie es mit CVSS, KEV-Status, Belichtung und Ihrer Umgebung.
Zusammenfassung
Im Linux-Kernel wurde die folgende Schwachstelle behoben: net/sched: act_api: RCU mit verzögerter Freigabe für den Aktionslebenszyklus verwenden Wenn NEWTFILTER und DELFILTER gleichzeitig ausgeführt werden, kann ein Race mit einer zugehörigen Aktion entstehen. Veranschaulichen wir dies mit CPU0, die NEWTFILTER ausführt, und CPU1, die DELFILTER ausführt: 0: mutex_lock() <-- hält die idr-Sperre 0: rcu_read_lock() 0: p = idr_find(idr, index) <-- Aktion p ist gültig (RCU schützt IDR) 0: mutex_unlock() <-- gibt die idr-Sperre frei 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0, mutex gehalten 1: idr_remove(idr, index) <-- Aktion aus IDR entfernt 1: mutex_unlock() <-- mutex freigegeben, was uns erlaubt, die Aktion zu löschen 1: tcf_action_cleanup(p); kfree(p) <-- gibt p sofort frei, keine Verzögerung 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- autsch, UAF p zeigt auf freigegebenen Speicher Dieser Patch behebt die Race-Bedingung zwischen NEWTFILTER und DELFILTER, indem er struct rcu_head zu tc_action hinzufügt, das bei der Verzögerung verwendet wird, und call_rcu() im Löschpfad einführt, um das endgültige kfree() zu verzögern. Hinweis: Dies ist ein Revert des Commits d7fb60b9cafb ("net_sched: get rid of tcfa_rcu"), aber auch eine Modernisierung/Vereinfachung zur direkten Verwendung von kfree_rcu(). Veranschaulichen wir den neuen wiederhergestellten Codepfad: 0: rcu_read_lock() 1: refcount_dec_and_mutex_lock() <-- refcnt 1->0, mutex gehalten 1: idr_remove(idr, index) 1: mutex_unlock() 1: call_rcu(&p->tcfa_rcu, tcf_action_rcu_free) <-- kfree nach der Gnadenfrist verzögern 0: p = idr_find(idr, index) 0: refcount_inc_not_zero(&p->tcfa_refcnt) <-- schlägt fehl, refcnt bereits 0 1: rcu_read_unlock() <-- freigeben, damit die Freigabe nach der Gnadenfrist ausgeführt werden kann Nachdem CPU1 idr_remove() aufgerufen hat, ist das Objekt über die IDR nicht mehr erreichbar. Das anschließende idr_find() von CPU0 gibt NULL zurück, und selbst wenn es noch einen veralteten Zeiger hielte, wird das sofortige kfree() nun bis nach der RCU-Gnadenfrist verzögert, sodass kein UAF auftreten kann.
Quellen
2CVE-2026-53264 - Entwurf
- CVEPoC
Eine Sammlung von Proof-of-Concept-Exploit-Skripten, die vom STAR Labs-Team für verschiedene CVEs geschrieben wurden, die sie entdeckt oder von anderen gefunden haben.
Verantwortungsvoller Umgang
Verwenden Sie Schwachstelleninformationen nur auf Systemen, die Sie besitzen oder zu deren Testen Sie berechtigt sind. Kitploit verlinkt auf öffentliche Forschungsmetadaten und speichert keinen Exploit-Code oder bösartige Payloads.