CVE-2026-53402

fbdev: fbcon: fix out-of-bounds read in err_out of fbcon_do_set_font()

State
Published
Severity
7.1 High
Published
Jul 19, 2026
Updated
Oct 19, 2026
Reserved
Jun 9, 2026

Read the record on cve.org

Description

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

fbdev: fbcon: fix out-of-bounds read in err_out of fbcon_do_set_font()

When fbcon_do_set_font() fails (e.g., due to a memory allocation failure inside vc_resize() under heavy memory pressure), it jumps to the `err_out` label to roll back the console state. However, the current rollback logic forgets to restore the `hi_font` state, leading to a severe state machine corruption.

Earlier in the function, `set_vc_hi_font()` might be called to change `vc->vc_hi_font_mask` and mutate the screen buffer. If `vc_resize()` subsequently fails, the `err_out` path restores `vc_font.charcount` but entirely skips rolling back the `vc_hi_font_mask` and the screen buffer.

This mismatch leaves the terminal in a desynchronized state. Because `vc_hi_font_mask` remains set, the VT subsystem will still accept character indices greater than 255 from userspace and write them to the screen buffer. Subsequent rendering calls (e.g., `fbcon_putcs()`) will then use these inflated indices to access the reverted, 256-character font array, leading to a deterministic out-of-bounds read and potential kernel memory disclosure.

Fix this by adding the missing rollback logic for the `hi_font` mask and screen buffer in the error path.

Scores

CVSSScoreVectorSource
3.17.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:HLinux

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 868749a7456dc48e93887a8474194e2ee6d6c21f to before cb016bcb40c81e7b19c4ae6143babb366dae8e20Affected
  • ebd6f886aa2447fcfcdce5450c9e1028e1d681bb to before ac562193c36696513ae196171892e9338475c4bcAffected
  • a5a923038d70d2d4a86cb4e3f32625a5ee6e7e24 to before 3618a4c5b2591cfa83efe74f5b18c2d02b35c3f5Affected
  • a5a923038d70d2d4a86cb4e3f32625a5ee6e7e24 to before a7a526fbc847f07ad3a503c7382189be5ab68574Affected
  • a5a923038d70d2d4a86cb4e3f32625a5ee6e7e24 to before b5bb2c696e140c399cb874def2feedf61dee27d6Affected
  • a5a923038d70d2d4a86cb4e3f32625a5ee6e7e24 to before 076b1aa65f77a49bce5a48a4a55a397cfcafa2b8Affected
  • a5a923038d70d2d4a86cb4e3f32625a5ee6e7e24 to before 39815715cbcfabb16fc8c5f4a23deeda20f5df62Affected
  • a5a923038d70d2d4a86cb4e3f32625a5ee6e7e24 to before 8fdc8c2057eea08d40ce2c8eed41ff9e451c65c2Affected
  • f08ccb792d3eaf1dc62d8cbf6a30d6522329f660Affected
  • 5.10.249 to before 5.10.261Affected
  • 5.15.64 to before 5.15.212Affected
  • 5.19.6 to before 5.20Affected
LinuxLinux
  • 6.0Affected
  • before 6.0Not affected
  • 5.10.261 through 5.10.*Not affected
  • 5.15.212 through 5.15.*Not affected
  • 6.1.178 through 6.1.*Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.96 through 6.12.*Not affected
  • 6.18.39 through 6.18.*Not affected
  • 7.1.3 through 7.1.*Not affected
  • 7.2 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.