ZeroHour

CVE-2026-89585

niche

Use-After-Free in Linux Kernel charlcd Driver on Failed Registration

CVSS 3.1
7.8 high
EPSS
Published
()
Modified
AI analysis

A use-after-free exists in the Linux kernel's auxdisplay charlcd driver when built with CONFIG_CHARLCD_BL_FLASH. The init path schedules a delayed work item for backlight flashing before charlcd_register() attempts device registration, so if registration fails the caller frees the charlcd object while the delayed work structure still holds its address, and the work queue later dereferences freed memory. An attacker with local, low-privileged access who can trigger or race the registration-failure path could exploit this for kernel memory corruption, with CVSS 3.1 scoring of 7.8 (high, local vector, C:H/I:H/A:H) indicating potential privilege escalation to kernel-level code execution. Only systems running kernels with the charlcd driver and the backlight-flash option enabled — typically custom embedded or hobbyist builds using character LCD panels (HD44780-class) — are exposed, since mainstream distribution kernels generally do not enable this option. There is no public proof-of-concept, and the flaw is not in the CISA Known Exploited Vulnerabilities catalog, so exploitation is considered theoretical at this time.

What to do: Update to a kernel that includes the charlcd_deinit() fix, which cancels the delayed backlight work and powers off the backlight on both registration rollback and normal unregistration. Check whether your kernel config sets CONFIG_CHARLCD / CONFIG_CHARLCD_BL_FLASH — stock distro kernels typically do not, in which case the system is not affected. For custom embedded builds that do use charlcd, rebuild against a patched kernel or disable the backlight-flash option until an upgrade is possible.

Affected
Linux kernel (drivers/auxdisplay/charlcd)
Estimated exposure
nichelikely on the order of a few thousand custom embedded/hobbyist systems at most — The charlcd auxdisplay driver and its BL_FLASH option are niche kernel configuration choices for character-LCD hardware and are not enabled in standard distribution kernels, so only custom-built embedded systems are plausibly affected.

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: auxdisplay: charlcd: cancel backlight work on registration failure With CONFIG_CHARLCD_BL_FLASH, charlcd_init() schedules bl_work before charlcd_register() calls misc_register(). If registration fails, the caller frees the charlcd object while delayed work still contains its address. Add charlcd_deinit() to cancel the delayed work and turn the backlight off. Use it for both registration rollback and normal unregistration.

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.