CVE-2026-23266

Source
https://cve.org/CVERecord?id=CVE-2026-23266
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-23266.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2026-23266
Downstream
Published
2026-03-18T17:44:48.715Z
Modified
2026-04-14T03:47:52.169714Z
Summary
fbdev: rivafb: fix divide error in nv3_arb()
Details

In the Linux kernel, the following vulnerability has been resolved:

fbdev: rivafb: fix divide error in nv3_arb()

A userspace program can trigger the RIVA NV3 arbitration code by calling the FBIOPUTVSCREENINFO ioctl on /dev/fb*. When doing so, the driver recomputes FIFO arbitration parameters in nv3arb(), using state->mclk_khz (derived from the PRAMDAC MCLK PLL) as a divisor without validating it first.

In a normal setup, state->mclkkhz is provided by the real hardware and is non-zero. However, an attacker can construct a malicious or misconfigured device (e.g. a crafted/emulated PCI device) that exposes a bogus PLL configuration, causing state->mclkkhz to become zero. Once nv3getparam() calls nv3arb(), the division by state->mclkkhz in the gns calculation causes a divide error and crashes the kernel.

Fix this by checking whether state->mclk_khz is zero and bailing out before doing the division.

The following log reveals it:

rivafb: setting virtual Y resolution to 2184 divide error: 0000 [#1] PREEMPT SMP KASAN PTI CPU: 0 PID: 2187 Comm: syz-executor.0 Not tainted 5.18.0-rc1+ #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014 RIP: 0010:nv3arb drivers/video/fbdev/riva/rivahw.c:439 [inline] RIP: 0010:nv3getparam+0x3ab/0x13b0 drivers/video/fbdev/riva/rivahw.c:546 Call Trace: nv3CalcArbitration.constprop.0+0x255/0x460 drivers/video/fbdev/riva/rivahw.c:603 nv3UpdateArbitrationSettings drivers/video/fbdev/riva/rivahw.c:637 [inline] CalcStateExt+0x447/0x1b90 drivers/video/fbdev/riva/rivahw.c:1246 rivaloadvideomode+0x8a9/0xea0 drivers/video/fbdev/riva/fbdev.c:779 rivafbsetpar+0xc0/0x5f0 drivers/video/fbdev/riva/fbdev.c:1196 fbsetvar+0x604/0xeb0 drivers/video/fbdev/core/fbmem.c:1033 dofbioctl+0x234/0x670 drivers/video/fbdev/core/fbmem.c:1109 fbioctl+0xdd/0x130 drivers/video/fbdev/core/fbmem.c:1188 __x64sysioctl+0x122/0x190 fs/ioctl.c:856

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/23xxx/CVE-2026-23266.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Fixed
ec5a58f4fd581875593ea92a65485e1906a53c0f
Fixed
52916878db2b8e3769743a94484729f0844352df
Fixed
526460a96c5443e2fc0fd231edd1f9c49d2de26b
Fixed
78daf5984d96edec3b920c72a93bd6821b8710b7
Fixed
9efa0dc46270a8723c158c64afbcf1dead72b28c
Fixed
3e4cbd1d46c246dfa684c8e9d8c20ae0b960c50a
Fixed
73f0391e92d404da68f7484e57c106c5e673dc7e
Fixed
0209e21e3c372fa2da04c39214bec0b64e4eb5f4

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-23266.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
2.6.12
Fixed
5.10.251
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.201
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.164
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.127
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.74
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.13
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
6.19.3

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-23266.json"