CVE-2026-64418 in Linuxinfo

Zusammenfassung

von VulDB • 26.07.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

mm: shrinker: Behebung eines Race Conditions beim Teardown von shrinker_info während der Erweiterung (Expansion)

expand_shrinker_info() durchläuft alle sichtbaren memcgs unterhalb des shrinker_mutex, einschließlich memcgs, die den ->css_online()-Aufruf noch nicht abgeschlossen haben.

Sobald pn->shrinker_info veröffentlicht wurde, muss der Teardown mit expand_shrinker_info() serialisiert bleiben, bis dieses memcg entweder vollständig online ist oder für Iterationen nicht mehr sichtbar ist. Derzeit verstößt alloc_shrinker_info() gegen diese Regel, indem es das shrinker_mutex freigibt, bevor ein teilweise initialisierter shrinker_info-Array freigegeben wird, was zu folgendem Race Condition führen kann:

CPU0 CPU1 ==== ====

css_create --> list_add_tail_rcu(&css->sibling, &parent_css->children); online_css --> mem_cgroup_css_online --> alloc_shrinker_info --> alloziere node0-Info rcu_assign_pointer(C->node0->shrinker_info, old0) Allozierung von node1-Info -> FEHLER -> goto err mutex_unlock(shrinker_mutex)

shrinker_alloc() --> shrinker_memcg_alloc --> mutex_lock(shrinker_mutex) expand_shrinker_info --> mem_cgroup_iter sieht das memcg expand_one_shrinker_info --> old0 = C->node0->shrinker_info memcpy(new->unit, old0->unit, ...);

free_shrinker_info --> kvfree(old0);

/* Double Free !! */ kvfree_rcu(old0, rcu);

Das gleiche Problem tritt später in mem_cgroup_css_online() auf. Wenn alloc_shrinker_info() erfolgreich ist, die nachfolgende objcg-Allokation jedoch fehlschlägt, führt der free_objcg -> free_shrinker_info()-Abbruchpfad (Unwind Path) den bereits veröffentlichten pn->shrinker_info-Arrays ohne shrinker_mutex ab. expand_one_shrinker_info() kann dabei auf die gleiche Weise mit diesem Teardown kollidieren, was zu Use-After-Free oder Double Free des alten shrinker_info führt.

Behoben wird dies durch Serialisierung des shrinker_info-Teardowns mit shrinker_mutex sowie durch Beibehaltung der Fehlerbereinigung in alloc_shrinker_info() innerhalb des gesperrten Abschnitts (locked section).

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Zuständig

Linux

Reservieren

19.07.2026

Veröffentlichung

25.07.2026

Moderieren

akzeptiert

Eintrag

VDB-383223

CPE

bereit

EPSS

0.00209

KEV

nein

Aktivitäten

low

Quellen

Do you need the next level of professionalism?

Upgrade your account now!