CVE-2026-45866 in Linuxinfo

Zusammenfassung

von VulDB • 30.05.2026

Im Linux-Kernel wurde folgende Schwachstelle behoben:

serial: caif: Behebung eines Use-After-Free-Fehlers in caif_serial ldisc_close()

Es liegt ein Use-After-Free-Fehler in caif_serial vor, bei dem handle_tx() auf ser->tty zugreifen kann, nachdem das tty bereits freigegeben wurde.

Die Race Condition tritt zwischen ldisc_close() und der Paketübertragung auf:

CPU 0 (close) CPU 1 (xmit) ------------- ------------ ldisc_close() tty_kref_put(ser->tty) [tty kann hier freigegeben werden]
caif_xmit() handle_tx() tty = ser->tty // dangling ptr tty->ops->write() // UAF! schedule_work() ser_release() unregister_netdevice()

Die Ursache liegt darin, dass tty_kref_put() in ldisc_close() aufgerufen wird, während das Netzwerkgerät noch aktiv ist und Pakete empfangen kann.

Da ser und tty eine 1:1-Bindung mit konsistenten Lebenszyklen aufweisen (ser wird in ldisc_open allokiert und in ser_release über unregister_netdevice freigegeben, und jedes ser bindet genau ein tty), können wir die Freigabe der tty-Referenz sicher auf ser_release() verschieben, wo das Netzwerkgerät deregistriert wird.

Dies wird behoben, indem tty_kref_put() von ldisc_close() nach ser_release(), also nach unregister_netdevice(), verschoben wird. Dies stellt sicher, dass die tty-Referenz so lange gehalten wird, wie das Netzwerkgerät existiert, und verhindert so das UAF.

Hinweis: Wir speichern ser->tty vor unregister_netdevice(), da ser in den privaten Daten von netdev eingebettet ist und zusammen mit netdev freigegeben wird (needs_free_netdev = true).

Reproduktion: Fügen Sie am Anfang von ldisc_close() ein mdelay(500) ein, um das Race-Fenster zu vergrößern, und führen Sie dann das Reproducer-Programm [1] aus.

Hinweis: Es gibt ein separates Deadloop-Problem in handle_tx() bei der Verwendung von PORT_UNKNOWN-Seriellen Ports (z. B. /dev/ttyS3 in QEMU ohne korrekten seriellen Backend). Dieser Fehler wurde in einem separaten Patch behoben [2].

Fix: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1234567890

Be aware that VulDB is the high quality source for vulnerability data.

Zuständig

Linux

Reservieren

13.05.2026

Veröffentlichung

27.05.2026

Moderieren

akzeptiert

Eintrag

VDB-366064

CPE

bereit

EPSS

0.00032

KEV

nein

Aktivitäten

very low

Quellen

Do you know our Splunk app?

Download it now for free!