CVE-2024-58060 in Linux
Zusammenfassung
von VulDB • 15.05.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
bpf: Ablehnung der struct_ops-Registrierung, die einen Modulzeiger verwendet und bei der die btf_id des Moduls fehlt
Es gibt einen UAF-Bericht (Use-After-Free) in bpf_struct_ops, wenn CONFIG_MODULES=n ist. Insbesondere betrifft der Bericht tcp_congestion_ops, das ein Mitglied „struct module *owner“ besitzt.
Für struct_ops, die ein Mitglied „struct module *owner“ besitzen, kann die Erweiterung entweder durch das reguläre Kernel-Modul oder durch bpf_struct_ops erfolgen. bpf_try_module_get() wird verwendet, um die Referenzzählung durchzuführen, und es wird eine unterschiedliche Referenzzählung basierend auf dem Owner-Zeiger durchgeführt. Wenn CONFIG_MODULES=n ist, fehlt die btf_id von „struct module“:
WARNUNG: resolve_btfids: unauflösbares Symbol module
Daher kann bpf_try_module_get() die Referenzzählung nicht korrekt durchführen.
Nicht alle struct-Elemente der Subsysteme erfordern das Mitglied „struct module *owner“. Zum Beispiel die jüngsten sched_ext_ops.
Dieser Patch deaktiviert die Registrierung von bpf_struct_ops, wenn die struct_ops das Mitglied „struct module *“ besitzt und die btf_id von „struct module“ fehlt. Die Hilfsfunktion btf_type_is_fwd() wurde zu diesem Zweck in die Header-Datei btf.h verschoben.
Dieses Problem trat bereits seit Beginn von bpf_struct_ops auf, das zahlreiche Änderungen durchlaufen hat. Das Fixes-Tag wurde auf einen jüngeren Commit gesetzt, auf den dieser Patch sauber angewendet werden kann. Da CONFIG_MODULES=n nicht üblich ist und das Problem bereits lange besteht, wird es auch für bpf-next angestrebt.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.