CVE-2026-31742

In the Linux kernel, the following vulnerability has been resolved: vt: discard stale unicode buffer on alt screen exit after resize When enter_alt_screen() saves vc_uni_lines into vc_saved_uni_lines and sets vc_uni_lines to NULL, a subsequent console resize via vc_do_resize() skips reallocating the unicode buffer because vc_uni_lines is NULL. However, vc_saved_uni_lines still points to the old buffer allocated for the original dimensions. When leave_alt_screen() later restores vc_saved_uni_lines, the buffer dimensions no longer match vc_rows/vc_cols. Any operation that iterates over the unicode buffer using the current dimensions (e.g. csi_J clearing the screen) will access memory out of bounds, causing a kernel oops: BUG: unable to handle page fault for address: 0x0000002000000020 RIP: 0010:csi_J+0x133/0x2d0 The faulting address 0x0000002000000020 is two adjacent u32 space characters (0x20) interpreted as a pointer, read from the row data area past the end of the 25-entry pointer array in a buffer allocated for 80x25 but accessed with 240x67 dimensions. Fix this by checking whether the console dimensions changed while in the alternate screen. If they did, free the stale saved buffer instead of restoring it. The unicode screen will be lazily rebuilt via vc_uniscr_check() when next needed.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:*

History

11 Nov 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: vt: descartar búfer Unicode obsoleto al salir de la pantalla alternativa después de un redimensionamiento Cuando enter_alt_screen() guarda vc_uni_lines en vc_saved_uni_lines y establece vc_uni_lines en NULL, un redimensionamiento posterior de la consola a través de vc_do_resize() omite la reasignación del búfer Unicode porque vc_uni_lines es NULL. Sin embargo, vc_saved_uni_lines todavía apunta al búfer antiguo asignado para las dimensiones originales. Cuando leave_alt_screen() más tarde restaura vc_saved_uni_lines, las dimensiones del búfer ya no coinciden con vc_rows/vc_cols. Cualquier operación que itere sobre el búfer Unicode utilizando las dimensiones actuales (por ejemplo, csi_J borrando la pantalla) accederá a memoria fuera de los límites, causando un kernel oops: BUG: no se puede manejar el fallo de página para la dirección: 0x 0000002000000020 RIP: 0010:csi_J+0x133/0x2d0 La dirección de fallo 0x 0000002000000020 son dos caracteres de espacio u32 adyacentes (0x20) interpretados como un puntero, leídos del área de datos de fila más allá del final del array de punteros de 25 entradas en un búfer asignado para 80x25 pero accedido con dimensiones de 240x67. Solucione esto comprobando si las dimensiones de la consola cambiaron mientras estaba en la pantalla alternativa. Si lo hicieron, libere el búfer guardado obsoleto en lugar de restaurarlo. La pantalla Unicode se reconstruirá de forma perezosa a través de vc_uniscr_check() cuando sea necesario de nuevo.

Information

Published : 2026-05-01 15:16

Updated : 2026-11-11 21:10


NVD link : CVE-2026-31742

Mitre link : CVE-2026-31742

CVE.ORG link : CVE-2026-31742


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-125

Out-of-bounds Read