fbdev: Fix vmalloc out-of-bounds write in fast_imageblit
authorSravan Kumar Gundu <sravankumarlpu@gmail.com>
Thu, 31 Jul 2025 20:36:18 +0000 (15:36 -0500)
committerHelge Deller <deller@gmx.de>
Sat, 2 Aug 2025 19:47:32 +0000 (21:47 +0200)
commitaf0db3c1f898144846d4c172531a199bb3ca375d
tree3abc1a2b5c65784c3ee33795fbc05b4a54d2ced3
parent038d61fd642278bab63ee8ef722c50d10ab01e8f
fbdev: Fix vmalloc out-of-bounds write in fast_imageblit

This issue triggers when a userspace program does an ioctl
FBIOPUT_CON2FBMAP by passing console number and frame buffer number.
Ideally this maps console to frame buffer and updates the screen if
console is visible.

As part of mapping it has to do resize of console according to frame
buffer info. if this resize fails and returns from vc_do_resize() and
continues further. At this point console and new frame buffer are mapped
and sets display vars. Despite failure still it continue to proceed
updating the screen at later stages where vc_data is related to previous
frame buffer and frame buffer info and display vars are mapped to new
frame buffer and eventully leading to out-of-bounds write in
fast_imageblit(). This bheviour is excepted only when fg_console is
equal to requested console which is a visible console and updates screen
with invalid struct references in fbcon_putcs().

Reported-and-tested-by: syzbot+c4b7aa0513823e2ea880@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=c4b7aa0513823e2ea880
Signed-off-by: Sravan Kumar Gundu <sravankumarlpu@gmail.com>
Cc: stable@vger.kernel.org
Signed-off-by: Helge Deller <deller@gmx.de>
drivers/video/fbdev/core/fbcon.c