CVE-2026-98838

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

State
Published
Severity
Not scored
Published
Oct 18, 2026
Updated
Oct 30, 2026
Reserved
Sep 25, 2026

Read the record on cve.org

Description

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(), ...).

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before d388658505bf707ff0cd7142c37c868febf8c2a5Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 82561eee12a342994daf3a70590f5d07c35da743Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 663cf98baced6941a0f3f00e1be61024e57d4429Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 2fc4e71aefab57c80ccc9775aad2af503fc90810Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 985c000b046ca4ee11ee34ef85db500c569ef6e8Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before ad06f7312d3f615dd466483ce81a9b9619166686Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 0ee53081425a1a31ce15089012cd96b8353eb44eAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 0928ed9bd7946baee911efa401088697836e3b1eAffected
LinuxLinux
  • 2.6.12Affected
  • before 2.6.12Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.224 through 5.15.*Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.113 through 6.12.*Not affected
  • 6.18.56 through 6.18.*Not affected
  • 7.2.10 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.