CVE-2025-38215

Source
https://nvd.nist.gov/vuln/detail/CVE-2025-38215
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-38215.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2025-38215
Downstream
Related
Published
2025-07-04T13:37:33.196Z
Modified
2025-11-28T02:35:10.021615Z
Summary
fbdev: Fix do_register_framebuffer to prevent null-ptr-deref in fb_videomode_to_var
Details

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

fbdev: Fix doregisterframebuffer to prevent null-ptr-deref in fbvideomodeto_var

If fbaddvideomode() in doregisterframebuffer() fails to allocate memory for fbvideomode, it will later lead to a null-ptr dereference in fbvideomodetovar(), as the fbinfo is registered while not having the mode in modelist that is expected to be there, i.e. the one that is described in fbinfo->var.

================================================================ general protection fault, probably for non-canonical address 0xdffffc0000000001: 0000 [#1] PREEMPT SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f] CPU: 1 PID: 30371 Comm: syz-executor.1 Not tainted 5.10.226-syzkaller #0 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:fbvideomodetovar+0x24/0x610 drivers/video/fbdev/core/modedb.c:901 Call Trace: displaytovar+0x3a/0x7c0 drivers/video/fbdev/core/fbcon.c:929 fbconresize+0x3e2/0x8f0 drivers/video/fbdev/core/fbcon.c:2071 resizescreen drivers/tty/vt/vt.c:1176 [inline] vcdoresize+0x53a/0x1170 drivers/tty/vt/vt.c:1263 fbconmodechanged+0x3ac/0x6e0 drivers/video/fbdev/core/fbcon.c:2720 fbconupdatevcs+0x43/0x60 drivers/video/fbdev/core/fbcon.c:2776 dofbioctl+0x6d2/0x740 drivers/video/fbdev/core/fbmem.c:1128 fbioctl+0xe7/0x150 drivers/video/fbdev/core/fbmem.c:1203 vfsioctl fs/ioctl.c:48 [inline] _dosysioctl fs/ioctl.c:753 [inline] _sesysioctl fs/ioctl.c:739 [inline] _x64sysioctl+0x19a/0x210 fs/ioctl.c:739 dosyscall_64+0x33/0x40 arch/x86/entry/common.c:46

entrySYSCALL64afterhwframe+0x67/0xd1

Even though fbconinit() checks beforehand if fbmatchmode() in vartodisplay() fails, it can not prevent the panic because fbconinit() does not return error code. Considering this and the comment in the code about fbmatchmode() returning NULL - "This should not happen" - it is better to prevent registering the fbinfo if its mode was not set successfully. Also move fbaddvideomode() closer to the beginning of doregister_framebuffer() to avoid having to do the cleanup on fail.

Found by Linux Verification Center (linuxtesting.org) with Syzkaller.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/38xxx/CVE-2025-38215.json"
}
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
908c5bb64f9c4319902b8ca1aa3fef8f83302520
Fixed
0909b2b49c4546a7a08c80f53d93736b63270827
Fixed
3f2098f4fba7718eb2501207ca6e99d22427f25a
Fixed
d803c4c2a4ac8ce2be6d899d5c7ab0bf7ec355e9
Fixed
17186f1f90d34fa701e4f14e6818305151637b9e

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
2.6.12
Fixed
6.1.143
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.95
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.35
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.15.4