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.

Sources and references

Verified primary and authoritative sources

  • CVE-2026-23266 CVE Program record

    Publisher, destination, and source semantics verified

    URL: https://www.cve.org/CVERecord?id=CVE-2026-23266

    CVE Program - Official CVE Program record with source-provided CVE metadata.

  • CVE-2026-23266 NVD vulnerability detail

    Publisher, destination, and source semantics verified

    URL: https://nvd.nist.gov/vuln/detail/CVE-2026-23266

    NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.

Supplemental references

  • Mitigation or vendor reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/0209e21e3c372fa2da04c39214bec0b64e4eb5f4

    416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch

  • Mitigation or vendor reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/3e4cbd1d46c246dfa684c8e9d8c20ae0b960c50a

    416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch

  • Mitigation or vendor reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/526460a96c5443e2fc0fd231edd1f9c49d2de26b

    416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch

  • Mitigation or vendor reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/52916878db2b8e3769743a94484729f0844352df

    416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch

  • Mitigation or vendor reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/73f0391e92d404da68f7484e57c106c5e673dc7e

    416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch

  • Mitigation or vendor reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/78daf5984d96edec3b920c72a93bd6821b8710b7

    416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch

  • Mitigation or vendor reference

    Unverified legacy reference

    URL: https://git.kernel.org/stable/c/9efa0dc46270a8723c158c64afbcf1dead72b28c

    416baaa9-dc9f-4396-8d5f-8c081fb06d67 - Patch

Methodology and review provenance

AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.