KernelScan.io

HIGH Introduced in 2.6.32

slip Hangup UAF

CVE-2026-90057

CVSS 7.8 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

KernelScan AI7.0HIGH

01

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().

02

Engine v0.6.0

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.

Affecteddrivers/net/slip/slip.c (slip)

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.

03

BranchIntroducedFixed inPatch commit
6.12.6.326.1.1889a3b1edff1ec
6.122.6.326.12.110de1f978c0f6a
6.182.6.326.18.52ddbc5dc5a2e2
6.62.6.326.6.157a2dbac3fb03b
7.22.6.327.2.6a540a49fcca5
mainline2.6.327.323c53269f2ba
cip/6.12.6.326.1.189-cip619a3b1edff1ec
cip/6.1-rt2.6.326.1.189-cip61-rt329a3b1edff1ec
cip/6.122.6.326.12.111-cip32de1f978c0f6a

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Affected — no CIP fix yet (latest 5.10.271-cip78)
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)
cip/4.19Affected — no CIP fix yet (latest 4.19.325-cip136)
cip/4.19-rtAffected — no CIP fix yet (latest 4.19.325-cip136-rt50)
cip/4.4Affected — no CIP fix yet (latest 4.4.302-cip115)
cip/4.4-rtAffected — no CIP fix yet (latest 4.4.302-cip115-rt63)