HIGH Introduced in 2.6.32
slip Hangup UAF
CVE-2026-90057
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
KernelScan AI7.0HIGH
01Description
In the Linux kernel, the following vulnerability has been resolved: slip: remove slip_hangup() to fix use-after-free in slip_receive_buf() Jaeyoung Chung and Eulgyu Kim reported a slab-use-after-free read in slip_receive_buf() when racing against tty hangup. tty_ldisc_hangup() calls ld->ops->hangup() while holding only a read lock on tty->ldisc_sem (via tty_ldisc_ref()). Because slip_hangup() simply called slip_close(), it ran concurrently with reader functions such as slip_receive_buf(). slip_close() unregisters and frees the net device and its private struct slip, causing concurrent reader threads in slip_receive_buf() to dereference freed memory. Line discipline close() is already guaranteed to be called under the write lock of tty->ldisc_sem during hangup processing (in tty_ldisc_reinit() or tty_ldisc_kill()). Remove slip_hangup() so teardown is serialized cleanly by slip_close().
02KernelScan AI Analysis
Risk summary
A local user with access to a serial TTY device configured with the SLIP line discipline can trigger a use-after-free by racing a hangup event against receive processing. This can lead to kernel memory corruption, potentially allowing privilege escalation or a system crash. The vulnerability requires the SLIP module to be loaded and a suitable TTY device to be accessible.
Vulnerability analysis
A race in the serial networking driver can free internal data while incoming data is still being processed, causing a use-after-free. The fix removes a duplicate cleanup path that ran without adequate synchronization, so all teardown now goes through a single properly locked path instead. A local user who can access the relevant serial device can trigger the flaw; no special kernel privileges are needed beyond access to that device.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| mainline | 2.6.32 | 7.3-rc1 | 23c53269f2ba |
| 6.1 | 2.6.32 | 6.1.188 | 9a3b1edff1ec |
| 6.6 | 2.6.32 | 6.6.157 | a2dbac3fb03b |
| 7.2 | 2.6.32 | 7.2.6 | a540a49fcca5 |
| 6.12 | 2.6.32 | 6.12.110 | de1f978c0f6a |
| 6.18 | 2.6.32 | 6.18.52 | ddbc5dc5a2e2 |
| cip/6.12 | 2.6.32 | 6.12.111-cip32 | de1f978c0f6a |