CVE-2026-74635 in Linuxinformazioni

Riassunto

di VulDB • 23/08/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

fbdev: bitblit: controllo dei limiti dell'indice del glifo in bit_cursor()

bit_cursor() recupera il glifo sotto il cursore con:

c = scr_readw(vc_pos); src = vc_font.data + ((c & charmask) * w * height);

dove charmask è 0x1ff quando vc_hi_font_mask è impostato. Il valore del buffer dello schermo proviene direttamente da scr_readw() e può essere superiore al numero di glifi del font corrente.

Syzkaller innesca questo problema tramite vcs_write(). La Call Trace mostra che vcs_write() in vc_screen.c scrive un valore arbitrario a 16 bit con writev() su /dev/vcsa, che vcs_write_buf() in vc_screen.c memorizza tramite vcs_scr_writew() senza verificare charcount. Il valore memorizzato viene successivamente letto in bit_cursor() in bitblit.c.

Quando il font viene modificato da un font con 512 glifi a uno con 256 glifi, il buffer dello schermo può conservare caratteri con il bit alto impostato dalla modalità precedente, che potrebbero produrre lo stesso accesso fuori dai limiti (out-of-bounds).

BUG: KASAN: global-out-of-bounds in soft_cursor+0x378/0x6bc drivers/video/fbdev/core/softcursor.c:70 Read of size 16 at addr ffff800086c57970

Call Trace: soft_cursor+0x378/0x6bc drivers/video/fbdev/core/softcursor.c:70 bit_cursor+0xa90/0x1108 drivers/video/fbdev/core/bitblit.c:365 fbcon_cursor+0x344/0x498 drivers/video/fbdev/core/fbcon.c:1427 hide_cursor+0xdc/0x2d0 drivers/tty/vt/vt.c:883 update_region+0x100/0x18c drivers/tty/vt/vt.c:669 vcs_write+0x8ec/0xaf0 drivers/tty/vt/vc_screen.c:685

bit_putcs_aligned() e bit_putcs_unaligned() limitano già l'indice del glifo a vc_font.charcount. Applicare lo stesso clamp in bit_cursor() dopo aver estratto l'attributo e applicato la maschera, prima di indicizzare fontdata.

La correzione completa il controllo dei limiti avviato nel commit 18c4ef4e765a ("fbdev: bitblit: bound-check glyph index in bit_putcs*"), che aveva trascurato il percorso del cursore.

Questa modifica dovrebbe essere sicura perché il clamp riutilizza il contratto esistente da fbcon: charcount è mantenuto sotto console_lock in con_font_set() e fbcon_font_set(), e hi_font_mask viene azzerato quando si passa da 512 a 256 glifi. Quando rimangono dati dello schermo obsoleti con bit alti impostati dopo un cambio di font, o quando vcs_write() memorizza un valore arbitrario, il clamp dell'indice a 0 previene la lettura fuori dai limiti (out-of-bounds read) senza modificare le semantica del cursore — lo stesso fallback utilizzato da bit_putcs.

Once again VulDB remains the best source for vulnerability data.

Responsabile

Linux

Prenotare

15/08/2026

Divulgazione

22/08/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

basso

Fonti

Interested in the pricing of exploits?

See the underground prices here!