{"id":11235,"date":"2026-09-04T18:53:06","date_gmt":"2026-09-04T10:53:06","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74635"},"modified":"2026-09-04T18:53:06","modified_gmt":"2026-09-04T10:53:06","slug":"cve-2026-74635","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-74635","title":{"rendered":"CVE-2026-74635 [HIGH] &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nfbdev: bitblit: bound"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>fbdev: bitblit: bound-check glyph index in bit_cursor()<\/p>\n<p>bit_cursor() fetches the glyph under the cursor with<\/p>\n<p>\tc = scr_readw(vc_pos);<br \/>\n\tsrc = vc_font.data + ((c &amp; charmask) * w * height);<\/p>\n<p>where charmask is 0x1ff when vc_hi_font_mask is set. The screen buffer<br \/>\nvalue comes directly from scr_readw() and may be larger than the current<br \/>\nfont&#8217;s glyph count.<\/p>\n<p>Syzkaller triggers this via vcs_write(). The Call Trace shows<br \/>\nvcs_write() in vc_screen.c writing an arbitrary 16-bit value with<br \/>\nwritev() to \/dev\/vcsa, which vcs_write_buf() in vc_screen.c stores via<br \/>\nvcs_scr_writew() without checking charcount. The stored value is later<br \/>\nread in bit_cursor() in bitblit.c.<\/p>\n<p>When the font is changed from a font with 512 glyphs to a font with<br \/>\n256 glyphs, the screen buffer can retain characters with the high<br \/>\nbit set from the previous mode, which could also produce the same<br \/>\nout-of-bounds access.<\/p>\n<p>  BUG: KASAN: global-out-of-bounds in soft_cursor+0x378\/0x6bc drivers\/video\/fbdev\/core\/softcursor.c:70<br \/>\n  Read of size 16 at addr ffff800086c57970<\/p>\n<p>  Call Trace:<br \/>\n   soft_cursor+0x378\/0x6bc drivers\/video\/fbdev\/core\/softcursor.c:70<br \/>\n   bit_cursor+0xa90\/0x1108 drivers\/video\/fbdev\/core\/bitblit.c:365<br \/>\n   fbcon_cursor+0x344\/0x498 drivers\/video\/fbdev\/core\/fbcon.c:1427<br \/>\n   hide_cursor+0xdc\/0x2d0 drivers\/tty\/vt\/vt.c:883<br \/>\n   update_region+0x100\/0x18c drivers\/tty\/vt\/vt.c:669<br \/>\n   vcs_write+0x8ec\/0xaf0 drivers\/tty\/vt\/vc_screen.c:685<\/p>\n<p>bit_putcs_aligned() and bit_putcs_unaligned() already clamp the glyph<br \/>\nindex to vc_font.charcount. Apply the same clamp in bit_cursor() after<br \/>\nextracting the attribute and masking, before indexing fontdata.<\/p>\n<p>The fix completes the bounds checking started in commit 18c4ef4e765a<br \/>\n(&#8220;fbdev: bitblit: bound-check glyph index in bit_putcs*&#8221;), which missed<br \/>\nthe cursor path.<\/p>\n<p>This change should be safe because the clamp reuses the existing<br \/>\ncontract from fbcon: charcount is maintained under console_lock in<br \/>\ncon_font_set() and fbcon_font_set(), and hi_font_mask is cleared when<br \/>\nswitching from 512 to 256 glyphs. When stale screen data with high bits<br \/>\nremains after a font switch, or when vcs_write() stores an arbitrary<br \/>\nvalue, clamping the index to 0 prevents the out-of-bounds read without<br \/>\nchanging cursor semantics \u2014 the same fallback bit_putcs uses.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>fbdev: bitblit: bound-check glyph index in bit_cursor()<\/p>\n<p>bit_cursor() fetches the glyph under the cursor with<\/p>\n<p>\tc = scr_readw(vc_po<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-11235","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/11235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}