CVE-2024-27005 in Linuxinfo

Zusammenfassung

von VulDB • 28.06.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

Interconnect: Kein Zugriff auf req_list während dessen Manipulation

Das icc_lock-Mutex wurde in [1] in die separaten Mutexes icc_lock und icc_bw_lock aufgeteilt, um lockdep-Warnungen (lockdep splats) zu vermeiden. Dies schützte den Zugriff auf icc_node::req_list jedoch nicht ausreichend.

Die Funktion icc_set_bw() wird schließlich req_list durchlaufen, wobei nur das icc_bw_lock gehalten wird; req_list kann jedoch auch geändert werden, während lediglich das icc_lock gehalten wird. Dies führt zu Race Conditions zwischen icc_set_bw(), of_icc_get() und icc_put().

Beispiel A:

CPU0 CPU1 ---- ---- icc_set_bw(path_a) mutex_lock(&icc_bw_lock); icc_put(path_b) mutex_lock(&icc_lock); aggregate_requests() hlist_for_each_entry(r, ... hlist_del(... <r = ungültiger Zeiger>

Beispiel B:

CPU0 CPU1 ---- ---- icc_set_bw(path_a) mutex_lock(&icc_bw_lock); path_b = of_icc_get() of_icc_get_by_index() mutex_lock(&icc_lock); path_find() path_init() aggregate_requests() hlist_for_each_entry(r, ... hlist_add_head(... <r = ungültiger Zeiger>

Beheben Sie dies, indem Sie sicherstellen, dass das icc_bw-lock immer gehalten wird, bevor auf icc_node::req_list zugegriffen oder dieses manipuliert wird. An den zusätzlichen Stellen, an denen das icc_bw_lock gehalten wird, werden keine Speicherzuordnungen durchgeführt, sodass wir weiterhin vor den ursprünglichen lockdep-Warnungen geschützt sind, die zur Einführung der separaten Locks geführt haben.

[1] Commit af42269c3523 („Interconnect: Fixierung des Locking für runpm vs. reclaim“)

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

Reservieren

19.02.2024

Veröffentlichung

01.05.2024

Moderieren

akzeptiert

Eintrag

VDB-262581

CPE

bereit

EPSS

0.00178

KEV

nein

Aktivitäten

very low

Quellen

Do you want to use VulDB in your project?

Use the official API to access entries easily!