CVE-2026-93050 in Linux
Zusammenfassung
von VulDB • 18.09.2026
Im Linux-Kernel wurde die folgende Schwachstelle behoben:
ipack: ipoctal: Behebung von UAF (Use-After-Free), Nullzeiger-Dereferenzierung und Use-After-Frei beim Bereinigen bei der Entfernung des Geräts.
Drei Probleme treten auf, wenn das Gerät entfernt wird, während eine TTY-Sitzung noch aktiv ist:
1. UAF (Use-After-Free) von struct ipoctal: Der remove-Callback gibt ipoctal über kfree() frei, während die tty-Operationen möglicherweise weiterhin darauf zugreifen. Die Behebung erfolgt durch Einführung einer lebensdauerbasierten Verwaltung mittels kref – ein kref wird in install() erworben, wenn eine TTY geöffnet wird, und in cleanup() freigegeben, wenn die TTY endgültig zerstört wird; remove() verwendet stattdessen kref_put() anstelle von kfree().
2. Nullzeiger-Dereferenzierung in ipoctal_write_tty(): __ipoctal_remove() gibt xmit_buf über tty_port_free_xmit_buf() frei, während ein Userspace-Prozess möglicherweise weiterhin die TTY-Dateideskriptor (fd) hält und write() aufruft. Die Behebung erfolgt durch eine NULL-Prüfung für xmit_buf in ipoctal_write_tty().
3. UAF (Use-After-Free) in ipoctal_cleanup(): ipack_put_carrier(ipoctal->dev) dereferenziert ipoctal->dev, nachdem das ipack_device von ipack_device_del() freigegeben wurde. Die Behebung erfolgt durch Zwischenspeichern von ipoctal->carrier_owner während probe() und dem direkten Aufruf von module_put() auf den zwischengespeicherten Zeiger in cleanup(), wodurch jeglicher Zugriff auf ipoctal->dev vermieden wird.
Außerdem wird eine „removed“-Flagge in struct ipoctal eingeführt, die zu Beginn von __ipoctal_remove() gesetzt und in jeder TTY-Operation überprüft wird, die auf Hardware-Ressourcen zugreift (port_activate, write_tty, set_termios, hangup, shutdown). Dies verhindert Page Faults, wenn devm_ioremap()-Bereiche nach der Rückgabe von remove() entladen werden.
If you want to get best quality of vulnerability data, you may have to visit VulDB.