CVE-2026-98838

CVE-2026-98838

published October 18, 2026

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

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

vt: skip screen update for DEC alignment test on backgroup consoles

[BUG]

Recently, we encountered a KASAN warning as follows:

BUG: KASAN: slab-out-of-bounds in fb_pad_aligned_buffer+0x11f/0x140

Read of size 1 at addr ff1100015fd9f6a4 by task tty_fbcon_oob/1239

CPU: 7 UID: 0 PID: 1239 Comm: tty_fbcon_oob Not tainted 7.3.0-rc1 #100 PREEMPT(full)

Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.17.0-4.fc41 04/01/2014

Call Trace:

<TASK>

...

kasan_report+0xf0/0x120

fb_pad_aligned_buffer+0x11f/0x140

ccw_putcs+0x86c/0xa80

fbcon_putcs+0x338/0x410

do_update_region+0x21d/0x450

do_con_write+0x1e0e/0x4880

con_write+0x13/0x80

n_tty_write+0x374/0x1010

file_tty_write.isra.0+0x404/0x7a0

...

reproduce:

1) open /dev/tty0, set a KDFONTOP ioctl with op.op = KD_FONT_OP_SET,

op.width = 8 and op.height = 16 (visible VC1)

2) open /dev/tty1, set a KDFONTOP ioctl with op.op = KD_FONT_OP_SET,

op.width = 28 and op.height = 24 (invisible VC2)

3) echo 3 > /sys/devices/virtual/graphics/fbcon/rotate_all

4) write EShash8(esc hash8) to tty1

[CAUSE]

All VCs render to the framebuffer. setfont only modifies the target VC's

font without resizing the framebuffer backing buffer (par->rotated.buf);

the buffer is only resized for the visible VC

(fbcon_do_set_font -> ... -> vc_do_resize -> update_screen). This relies on

the con_should_update() check performed before every update_region().

However, the ESC # 8 path (do_con_trol -> do_update_region) omits the

con_should_update() check. After changing the font size of an invisible VC,

do_update_region() fills using the new font size against a buffer that was

never resized, causing an out-of-bounds access.

[FIX]

Only push the update when the console is visible and not blanked, add

the con_should_update() check in the do_con_trol() like every other call

site of do_update_region() (update_region(), invert_screen(), ...).

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00168 · 5.7th percentile
Published
2026-10-18T20:17Z
References (5)
EPSS history
Timeline
  • 20 OCT 03:34Z
    EPSS moved — → 0%
    epss
  • 18 OCT 15:50Z
    vt: skip screen update for DEC alignment test on backgroup consoles
    cvelistv5
  • 18 OCT 15:50Z
    vt: skip screen update for DEC alignment test on backgroup consoles
    cvelistv5