ZeroHour

CVE-2026-89597

niche

Linux kernel uvesafb: stale v86d connector callback left registered on init failure

CVSS 3.1
7.8 high
EPSS
Published
()
Modified
AI analysis

The Linux kernel's uvesafb framebuffer driver registers its v86d connector callback early in uvesafb_init(), but if the subsequent platform_driver_register() call fails, the function returns without unregistering that callback. Because a failed module init causes the module to be unloaded, this leaves a dangling function pointer in the kernel's connector subsystem that can be dereferenced later, a classic use-after-free-style cleanup flaw. Triggering it requires local access with the ability to influence module loading and to induce the platform-driver registration failure, after which the stale callback could be reached through connector message traffic. The issue was found by static analysis rather than by observed exploitation, and CVSS 3.1 rates it 7.8 (high, local vector) with potential impact on kernel confidentiality, integrity, and availability, though practical exploitability is expected to be limited. No public proof of concept and no in-the-wild exploitation are known.

What to do: Apply kernel updates from your distro once the one-line cleanup fix (unregistering the connector callback on the platform_driver_register failure path) is backported. Verify exposure with 'lsmod | grep uvesafb' and check whether the v86d package is installed; on systems not using this legacy framebuffer, blacklist the uvesafb module to eliminate the code path entirely.

Affected
Linux kernel (kernel.org) Linux kernel, uvesafb framebuffer driver (CONFIG_FB_UVESA)
Estimated exposure
nicheLikely well under 100k systems actually running uvesafb, though the vulnerable module ships in many mainstream distro kernels (order 10M+ installs carry the… — uvesafb is a legacy framebuffer driver that depends on the v86d userspace daemon, is built as a loadable module in most general-purpose distro kernels but is rarely loaded because modern hardware uses KMS drivers, so the vulnerable init…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

In the Linux kernel, the following vulnerability has been resolved: fbdev: uvesafb: unregister connector callback on init failure uvesafb_init() registers the v86d connector callback before registering the platform driver. If platform_driver_register() fails, the function returns the error directly and leaves the connector callback registered. The later platform-device failure path already unregisters the callback. Add the same cleanup before the final return when platform-driver registration fails. This issue was identified during our ongoing static-analysis research while reviewing kernel code.

Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.