vt: skip screen update for DEC alignment test on backgroup consoles (Linux Linux)
At a glance
- Source
- NVD
- EPSS
- EPSS 0.18 % · percentile 7 ()
- State
- PUBLISHED
- Published
- Updated
- Assigner
- Linux
- NVD status
- Received
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(), ...).
References
- https://git.kernel.org/stable/c/d388658505bf707ff0cd7142c37c868febf8c2a5
- https://git.kernel.org/stable/c/82561eee12a342994daf3a70590f5d07c35da743
- https://git.kernel.org/stable/c/663cf98baced6941a0f3f00e1be61024e57d4429
- https://git.kernel.org/stable/c/2fc4e71aefab57c80ccc9775aad2af503fc90810
- https://git.kernel.org/stable/c/985c000b046ca4ee11ee34ef85db500c569ef6e8
- https://git.kernel.org/stable/c/ad06f7312d3f615dd466483ce81a9b9619166686
- https://git.kernel.org/stable/c/0ee53081425a1a31ce15089012cd96b8353eb44e
- https://git.kernel.org/stable/c/0928ed9bd7946baee911efa401088697836e3b1e
European references
- ENISA EUVD · EUVD-2026-103778
- GCVE · GCVE-0-2026-98838
CERT-FR advisories
- CERTFR-2026-AVI-1375 — Multiples vulnérabilités dans le noyau Linux de Debian LTS · cert.ssi.gouv.fr
Affected products
| Product | Versions |
|---|---|
| Linux · Linux | affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < d388658505bf707ff0cd7142c37c868febf8c2a5 ; affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 82561eee12a342994daf3a70590f5d07c35da743 ; affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 663cf98baced6941a0f3f00e1be61024e57d4429 ; affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 2fc4e71aefab57c80ccc9775aad2af503fc90810 ; affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 985c000b046ca4ee11ee34ef85db500c569ef6e8 ; affected 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < ad06f7312d3f615dd466483ce81a9b9619166686 |
| Linux · Linux | affected 2.6.12 ; unaffected 0 < 2.6.12 ; unaffected 5.10.273 ≤ 5.10.* ; unaffected 5.15.224 ≤ 5.15.* ; unaffected 6.1.191 ≤ 6.1.* ; unaffected 6.6.160 ≤ 6.6.* |
Sources
| Source | Licence |
|---|---|
| CVE List (CVEProject cvelistV5) | CVE Program Terms of Use |
| EPSS (FIRST.org) | FIRST — attribution requested |
| ENISA EUVD | ENISA — reproduction authorised, source acknowledged |
| CERT-FR (ANSSI) | Licence Ouverte / Etalab 2.0 |
| NVD (NIST) via fkie-cad/nvd-json-data-feeds | Public domain — this product uses data from the NVD API but is not endorsed or certified by the NVD |