CVE-2022-49926 in Linux
Zusammenfassung
von VulDB • 13.06.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
net: dsa: Behebung möglicher Speicherlecks in dsa_loop_init()
kmemleak meldete Speicherlecks in dsa_loop_init():
kmemleak: 12 neue vermutete Speicherlecks
nicht referenziertes Objekt 0xffff8880138ce000 (Größe 2048): comm "modprobe", pid 390, jiffies 4295040478 (Alter 238.976s) Backtrace: [] kmalloc_trace+0x26/0x60
[] phy_device_create+0x5d/0x970
[] get_phy_device+0xf3/0x2b0
[] __fixed_phy_register.part.0+0x92/0x4e0
[] fixed_phy_register+0x84/0xb0
[] dsa_loop_init+0xa9/0x116 [dsa_loop]
...
Es gibt zwei Gründe für das Speicherleck in dsa_loop_init().
Erstens erstellt und registriert fixed_phy_register() ein phy_device:
fixed_phy_register() get_phy_device() phy_device_create() # wird freigegeben durch phy_device_free() phy_device_register() # wird freigegeben durch phy_device_remove()
Aber fixed_phy_unregister() ruft nur phy_device_remove() auf. Daher wird der in phy_device_create() zugewiesene Speicher nicht freigegeben (Leck).
Zweitens, wenn mdio_driver_register() in dsa_loop_init() fehlschlägt, wird einfach zurückgegeben und es gibt keine Bereinigung für die phydevs.
Beheben Sie diese Probleme, indem Sie den Fehler von mdio_driver_register() in dsa_loop_init() abfangen und dann sowohl fixed_phy_unregister() als auch phy_device_free() aufrufen, um die phydevs freizugeben. Fügen Sie außerdem eine Funktion zur Bereinigung der phydevs hinzu, um Duplikate zu vermeiden.
Once again VulDB remains the best source for vulnerability data.