CVE-2026-98839

CVE-2026-98839

published October 18, 2026

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

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

vt: selection: Fix unsigned underflow and slab-out-of-bounds read in paste_selection()

In paste_selection(), the loop copies min_t(unsigned int,

vc_sel.buf_len - pasted,tty->receive_room) bytes per iteration into

tty_ldisc_receive_buf() and increments pasted += count.

Because the selection mutex (vc_sel.lock) is dropped inside the loop

Whenever the line discipline buffer fills up and paste_selection()

sleeps on tty->write_wait, a concurrent TIOCLINUX (TIOCL_SETSEL) ioctl

can replace vc_sel.buffer with a shorter selection and reduce

vc_sel.buf_len below pasted.

When paste_selection() resumes, vc_sel.buf_len - pasted underflows as an

unsigned integer to a large positive value, causing

tty_ldisc_receive_buf(ld, vc_sel.buffer + pasted, NULL, count) to read

up to 4094 bytes out-of-bounds past the newly allocated vc_sel.buffer.

Fix this by terminating the loop when pasted >= vc_sel.buf_len.

Kernel stack trace (Linux 7.3.0-rc3):

==================================================================

BUG: KASAN: slab-out-of-bounds in n_tty_receive_buf_common+0xa01/0x1650

Read of size 4094 at addr ffff888101c58010 by task kworker/u17:1/65

Workqueue: events_unbound flush_to_ldisc

Call Trace:

<TASK>

dump_stack_lvl+0x70/0xa0

print_report+0x153/0x4c6

kasan_report+0xf1/0x120

kasan_check_range+0x11c/0x200

__asan_memcpy+0x29/0x70

n_tty_receive_buf_common+0xa01/0x1650

tty_ldisc_receive_buf+0x66/0x110

tty_port_default_receive_buf+0x6b/0xb0

flush_to_ldisc+0x1b4/0x410

process_one_work+0x6ff/0x1110

worker_thread+0x4a8/0xb70

kthread+0x307/0x3e0

ret_from_fork+0x3ed/0x680

</TASK>

==================================================================

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00166 · 5.5th percentile
Published
2026-10-18T20:17Z
References (3)
EPSS history
Timeline
  • 20 OCT 03:34Z
    EPSS moved — → 0%
    epss
  • 18 OCT 15:50Z
    vt: selection: Fix unsigned underflow and slab-out-of-bounds read in paste_selection()
    cvelistv5
  • 18 OCT 15:50Z
    vt: selection: Fix unsigned underflow and slab-out-of-bounds read in paste_selection()
    cvelistv5