{"id":41311,"date":"2026-10-19T00:33:09","date_gmt":"2026-10-18T16:33:09","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98839"},"modified":"2026-10-19T00:33:09","modified_gmt":"2026-10-18T16:33:09","slug":"cve-2026-98839","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98839","title":{"rendered":"CVE-2026-98839 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nvt: selection: Fix un"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vt: selection: Fix unsigned underflow and slab-out-of-bounds read in paste_selection()<\/p>\n<p>In paste_selection(), the loop copies min_t(unsigned int,<br \/>\nvc_sel.buf_len &#8211; pasted,tty-&gt;receive_room) bytes per iteration into<br \/>\ntty_ldisc_receive_buf() and increments pasted += count.<\/p>\n<p>Because the selection mutex (vc_sel.lock) is dropped inside the loop<br \/>\nWhenever the line discipline buffer fills up and paste_selection()<br \/>\nsleeps on tty-&gt;write_wait, a concurrent TIOCLINUX (TIOCL_SETSEL) ioctl<br \/>\ncan replace vc_sel.buffer with a shorter selection and reduce<br \/>\nvc_sel.buf_len below pasted.<\/p>\n<p>When paste_selection() resumes, vc_sel.buf_len &#8211; pasted underflows as an<br \/>\nunsigned integer to a large positive value, causing<br \/>\ntty_ldisc_receive_buf(ld, vc_sel.buffer + pasted, NULL, count) to read<br \/>\nup to 4094 bytes out-of-bounds past the newly allocated vc_sel.buffer.<\/p>\n<p>Fix this by terminating the loop when pasted &gt;= vc_sel.buf_len.<\/p>\n<p>Kernel stack trace (Linux 7.3.0-rc3):<br \/>\n ==================================================================<br \/>\n BUG: KASAN: slab-out-of-bounds in n_tty_receive_buf_common+0xa01\/0x1650<br \/>\n Read of size 4094 at addr ffff888101c58010 by task kworker\/u17:1\/65<br \/>\n Workqueue: events_unbound flush_to_ldisc<br \/>\n Call Trace:<\/p>\n<p>  dump_stack_lvl+0x70\/0xa0<br \/>\n  print_report+0x153\/0x4c6<br \/>\n  kasan_report+0xf1\/0x120<br \/>\n  kasan_check_range+0x11c\/0x200<br \/>\n  __asan_memcpy+0x29\/0x70<br \/>\n  n_tty_receive_buf_common+0xa01\/0x1650<br \/>\n  tty_ldisc_receive_buf+0x66\/0x110<br \/>\n  tty_port_default_receive_buf+0x6b\/0xb0<br \/>\n  flush_to_ldisc+0x1b4\/0x410<br \/>\n  process_one_work+0x6ff\/0x1110<br \/>\n  worker_thread+0x4a8\/0xb70<br \/>\n  kthread+0x307\/0x3e0<br \/>\n  ret_from_fork+0x3ed\/0x680<\/p>\n<p> ==================================================================<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>vt: selection: Fix unsigned underflow and slab-out-of-bounds read in paste_selection()<\/p>\n<p>In paste_selection(), the loop copies min_t<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-41311","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/41311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=41311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=41311"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=41311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}