In the Linux kernel, the following vulnerability has been resolved:
fbdev: bitblit: bound-check glyph index in bit_cursor()
bit_cursor() fetches the glyph under the cursor with
c = scr_readw(vc_pos); src = vc_font.data + ((c & charmask) * w * height);
where charmask is 0x1ff when vc_hi_font_mask is set. The screen buffer value comes directly from scr_readw() and may be larger than the current font's glyph count.
Syzkaller triggers this via vcs_write(). The Call Trace shows vcs_write() in vc_screen.c writing an arbitrary 16-bit value with writev() to /dev/vcsa, which vcs_write_buf() in vc_screen.c stores via vcs_scr_writew() without checking charcount. The stored value is later read in bit_cursor() in bitblit.c.
When the font is changed from a font with 512 glyphs to a font with 256 glyphs, the screen buffer can retain characters with the high bit set from the previous mode, which could also produce the same out-of-bounds access.
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() and bit_putcs_unaligned() already clamp the glyph index to vc_font.charcount. Apply the same clamp in bit_cursor() after extracting the attribute and masking, before indexing fontdata.
The fix completes the bounds checking started in commit 18c4ef4e765a ("fbdev: bitblit: bound-check glyph index in bit_putcs*"), which missed the cursor path.
This change should be safe because the clamp reuses the existing contract from fbcon: charcount is maintained under console_lock in con_font_set() and fbcon_font_set(), and hi_font_mask is cleared when switching from 512 to 256 glyphs. When stale screen data with high bits remains after a font switch, or when vcs_write() stores an arbitrary value, clamping the index to 0 prevents the out-of-bounds read without changing cursor semantics — the same fallback bit_putcs uses.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon Linux Ami 2 | — | Upgrade kernel-livepatch-5.10.265-265.1078Upgrade kernel-debuginfo-common-x86_64Upgrade python-perfUpgrade kernel-toolsUpgrade bpftool-debuginfoUpgrade bpftoolUpgrade kernelUpgrade kernel-headersUpgrade python-perf-debuginfoUpgrade perfUpgrade kernel-develUpgrade perf-debuginfoUpgrade kernel-livepatch-5.15.220-153.252Upgrade kernel-tools-debuginfoUpgrade kernel-debuginfoUpgrade kernel-tools-develUpgrade kernel-debuginfo-common-aarch64 | Oct 19, 2026 | Oct 19, 2026 |
| Amazon_linux_2023 | — | Upgrade perf6.18Upgrade python3-perf6.18Upgrade kernel6.18-tools-debuginfoUpgrade kernel6.18-modules-extra-commonUpgrade kernel-livepatch-6.18.48-107.148Upgrade kernel6.18-debuginfo-common-aarch64Upgrade perf6.18-debuginfoUpgrade bpftool6.18Upgrade kernel6.18Upgrade kernel6.18-develUpgrade python3-perf6.18-debuginfoUpgrade kernel6.18-toolsUpgrade kernel6.18-tools-develUpgrade kernel6.18-debuginfo-common-x86_64Upgrade kernel6.18-headersUpgrade kernel6.18-modules-extraUpgrade microvm-kernel6.18Upgrade kernel6.18-debuginfoUpgrade bpftool6.18-debuginfo | Sep 30, 2026 | Aug 22, 2026 |
| Debian | — | Upgrade linuxUpgrade linux-6.12 | Aug 26, 2026 | Aug 26, 2026 |
| Redhat_linux | — | No solution exists | Aug 26, 2026 | Aug 22, 2026 |
| Ubuntu | — | Upgrade linux-image-lowlatency-64k-5.15Upgrade linux-image-nvidiaUpgrade linux-image-nvidia-tegra-rt-6.8Upgrade linux-image-generic-5.15Upgrade linux-image-5.15.0-1080-xilinx-zynqmpUpgrade linux-image-gkeop-5.15Upgrade linux-image-5.15.0-1114-oracleUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-gcp-fips-5.15Upgrade linux-image-oracleUpgrade linux-image-azure-lts-22.04Upgrade linux-image-azure-5.15Upgrade linux-image-azure-fips-5.15Upgrade linux-image-5.15.0-1117-awsUpgrade linux-image-nvidia-tegra-6.8Upgrade linux-image-5.15.0-1117-aws-64kUpgrade linux-image-5.15.0-1109-kvmUpgrade linux-image-5.15.0-198-genericUpgrade linux-image-gkeopUpgrade linux-image-5.15.0-1123-azureUpgrade linux-image-virtual-5.15Upgrade linux-image-intel-iotgUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1112-nvidiaUpgrade linux-image-nvidia-lowlatency-5.15Upgrade linux-image-intel-iotg-5.15Upgrade linux-image-generic-64k-5.15Upgrade linux-image-kvm-5.15Upgrade linux-image-aws-fipsUpgrade linux-image-nvidia-5.15Upgrade linux-image-nvidia-tegraUpgrade linux-image-5.15.0-198-generic-lpaeUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-aws-64k-lts-22.04Upgrade linux-image-aws-5.15Upgrade linux-image-aws-fips-5.15Upgrade linux-image-azure-fde-5.15Upgrade linux-image-generic-lpaeUpgrade linux-image-generic-64kUpgrade linux-image-oem-20.04bUpgrade linux-image-realtimeUpgrade linux-image-6.8.0-1036-nvidia-tegraUpgrade linux-image-5.15.0-1100-gkeopUpgrade linux-image-5.15.0-1112-nvidia-lowlatencyUpgrade linux-image-lowlatency-5.15Upgrade linux-image-5.15.0-195-lowlatencyUpgrade linux-image-genericUpgrade linux-image-generic-lpae-5.15Upgrade linux-image-gkeUpgrade linux-image-lowlatency-64kUpgrade linux-image-oem-20.04cUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-virtualUpgrade linux-image-5.15.0-198-generic-64kUpgrade linux-image-ibm-5.15Upgrade linux-image-5.15.0-1116-realtimeUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-intelUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-5.15.0-1111-ibmUpgrade linux-image-5.15.0-1118-gcp-fipsUpgrade linux-image-fipsUpgrade linux-image-xilinx-zynqmp-5.15Upgrade linux-image-oem-20.04Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-oem-20.04dUpgrade linux-image-azure-fipsUpgrade linux-image-5.15.0-1123-azure-fipsUpgrade linux-image-oracle-5.15Upgrade linux-image-aws-64k-5.15Upgrade linux-image-5.15.0-1109-intel-iot-realtimeUpgrade linux-image-gcp-fipsUpgrade linux-image-ibmUpgrade linux-image-gke-5.15Upgrade linux-image-6.8.0-1036-nvidia-tegra-rtUpgrade linux-image-5.15.0-198-fipsUpgrade linux-image-lowlatencyUpgrade linux-image-intel-iot-realtime-5.15Upgrade linux-image-awsUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-gcp-5.15Upgrade linux-image-5.15.0-1118-gcpUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-azureUpgrade linux-image-5.15.0-1122-azure-fdeUpgrade linux-image-5.15.0-195-lowlatency-64kUpgrade linux-image-5.15.0-1117-aws-fipsUpgrade linux-image-aws-lts-22.04Upgrade linux-image-kvmUpgrade linux-image-gcpUpgrade linux-image-realtime-5.15Upgrade linux-image-5.15.0-1113-gkeUpgrade linux-image-azure-fdeUpgrade linux-image-azure-cvmUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-5.15.0-1112-intel-iotgUpgrade linux-image-fips-5.15 | Oct 6, 2026 | Oct 6, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Sep 15, 2026 | Aug 22, 2026 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub