CVE-2026-93050

CVE-2026-93050

published September 17, 2026

CVSS
—
EPSS
0%
Percentile
10.0
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

ipack: ipoctal: fix UAF, null-ptr-deref, and use-after-free in cleanup on remove

Three issues arise when the device is removed while a tty session is

still active:

1. UAF of struct ipoctal: the remove callback frees ipoctal via

kfree() while tty ops may still access it. Fix by introducing

kref-based lifetime management — kref is taken in install() when

a tty is opened and released in cleanup() when the tty is finally

destroyed; remove() uses kref_put() instead of kfree().

2. NULL dereference in ipoctal_write_tty(): __ipoctal_remove()

frees xmit_buf via tty_port_free_xmit_buf() while a userspace

process may still hold the tty fd and call write(). Fix by

checking for NULL xmit_buf in ipoctal_write_tty().

3. UAF in ipoctal_cleanup(): ipack_put_carrier(ipoctal->dev)

dereferences ipoctal->dev after the ipack_device has been freed

by ipack_device_del(). Fix by caching ipoctal->carrier_owner

during probe() and calling module_put() on the cached pointer

directly in cleanup(), avoiding any access to ipoctal->dev.

Also introduce a "removed" flag in struct ipoctal, set at the start

of __ipoctal_remove(), and checked in every tty op that accesses

hardware resources (port_activate, write_tty, set_termios, hangup,

shutdown). This prevents page faults when devm_ioremap() regions

are unmapped after remove() returns.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00205 · 10.0th percentile
Published
2026-09-17T21:17Z
References (6)
EPSS history
Timeline
  • 19 SEP 03:55Z
    EPSS moved — → 0%
    epss
  • 17 SEP 16:10Z
    ipack: ipoctal: fix UAF, null-ptr-deref, and use-after-free in cleanup on remove
    cvelistv5