PatchSiren

PatchSiren cyber security CVE debrief

CVE-2026-23266 Linux CVE debrief

A divide-by-zero vulnerability in the Linux kernel's RIVA framebuffer driver (rivafb) allows a local attacker to crash the kernel. The flaw exists in nv3_arb() within drivers/video/fbdev/riva/riva_hw.c, where state->mclk_khz is used as a divisor without validation. An attacker with access to a malicious or emulated PCI device can supply a zero value for this clock parameter via a crafted PRAMDAC MCLK PLL configuration. Triggering the FBIOPUT_VSCREENINFO ioctl on /dev/fb* then causes a divide error and kernel panic. The vulnerability requires local access and low privileges, with no confidentiality or integrity impact, but results in complete availability loss for the affected system. The issue was resolved by adding a zero check on state->mclk_khz before division.

Vendor
Linux
Product
Unknown
CVSS
MEDIUM 5.5
CISA KEV
Not listed in stored evidence
Original CVE published
2026-03-18
Original CVE updated
2026-05-29
Advisory published
2026-03-18
Advisory updated
2026-05-29

Who should care

Linux system administrators, kernel maintainers, virtualization platform operators, and security teams monitoring for local privilege escalation or denial-of-service vectors in framebuffer subsystems

Technical summary

The RIVA NV3 framebuffer driver computes FIFO arbitration parameters in nv3_arb() using state->mclk_khz as a divisor. This value is derived from the PRAMDAC MCLK PLL register and is not validated before use. A malicious or misconfigured PCI device (including emulated hardware) can present a zero MCLK value, causing a divide error when the FBIOPUT_VSCREENINFO ioctl triggers mode setting. The call path is: fb_ioctl → do_fb_ioctl → fb_set_var → rivafb_set_par → riva_load_video_mode → CalcStateExt → nv3UpdateArbitrationSettings → nv3CalcArbitration.constprop.0 → nv3_get_param → nv3_arb. The fix adds a zero check on state->mclk_khz with early bailout before the gns division.

Defensive priority

medium

Recommended defensive actions

  • Apply the relevant stable kernel patch for your branch: 5.10.251+, 5.15.201+, 6.1.164+, 6.6.127+, 6.12.74+, 6.18.13+, or 6.19.3+
  • If the rivafb driver is not required, consider disabling it via kernel module blacklist or build configuration
  • Restrict access to framebuffer devices (/dev/fb*) to trusted users to reduce local attack surface
  • Monitor for unexpected divide error kernel panics involving riva_hw.c or nv3_arb as potential exploitation indicators
  • Review PCI device attachments for unauthorized or unexpected emulated hardware in virtualized environments

Evidence notes

CVE published 2026-03-18; modified 2026-05-29. NVD CPE identifies Linux kernel versions from 2.6.12 through multiple stable branches as affected. CWE-369 (Divide By Zero) assigned by NVD. Eight stable kernel patches referenced. No KEV entry. CVSS 3.1: AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H = 5.5 Medium.

Official resources

2026-03-18T18:16:25.370Z