← Back to CVE List
CVE-2026-90057NVD
Vulnerability Summary
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().
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().
CVSS v3.1 Base Metrics — Score 7.8 (HIGH)
Attack VectorLocal
Attack ComplexityLow
Privileges RequiredLow
User InteractionNone
ScopeUnchanged
ConfidentialityHigh
IntegrityHigh
AvailabilityHigh
Affected & Patched Versions
- Linux Linux >= 5342b77c4123ba39f911d92a813295fb3bb21f69 and < 9a3b1edff1ecb47d323f2506b3ffc22178acd1c6
- Linux Linux >= 5342b77c4123ba39f911d92a813295fb3bb21f69 and < a2dbac3fb03b4427ccf057debc83fc61ee102529
- Linux Linux >= 5342b77c4123ba39f911d92a813295fb3bb21f69 and < de1f978c0f6ab42b28192d74dc59af52fdc76135
- Linux Linux >= 5342b77c4123ba39f911d92a813295fb3bb21f69 and < ddbc5dc5a2e29b3934da09c1ba3c930fd8a40fd6
- Linux Linux >= 5342b77c4123ba39f911d92a813295fb3bb21f69 and < a540a49fcca59d1c92c3a6462e67ca21676a88df
- Linux Linux >= 5342b77c4123ba39f911d92a813295fb3bb21f69 and < 23c53269f2baaedf2d92784290cb9ef6db2a3bce
- Linux Linux >= 2.6.32
- Linux Linux 9a3b1edff1ecb47d323f2506b3ffc22178acd1c6
- Linux Linux a2dbac3fb03b4427ccf057debc83fc61ee102529
- Linux Linux de1f978c0f6ab42b28192d74dc59af52fdc76135
- Linux Linux ddbc5dc5a2e29b3934da09c1ba3c930fd8a40fd6
- Linux Linux a540a49fcca59d1c92c3a6462e67ca21676a88df
- Linux Linux 23c53269f2baaedf2d92784290cb9ef6db2a3bce
External References
- https://git.kernel.org/stable/c/9a3b1edff1ecb47d323f2506b3ffc22178acd1c6
- https://git.kernel.org/stable/c/a2dbac3fb03b4427ccf057debc83fc61ee102529
- https://git.kernel.org/stable/c/de1f978c0f6ab42b28192d74dc59af52fdc76135
- https://git.kernel.org/stable/c/ddbc5dc5a2e29b3934da09c1ba3c930fd8a40fd6
- https://git.kernel.org/stable/c/a540a49fcca59d1c92c3a6462e67ca21676a88df
- https://git.kernel.org/stable/c/23c53269f2baaedf2d92784290cb9ef6db2a3bce