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

auxdisplay: line-display: fix OOB read on zero-length message_store()

linedisp_display() unconditionally reads msg[count - 1] before
checking whether count is zero, so a write of zero bytes to the
message sysfs attribute hits msg[-1]:

write(fd, "", 0);

-> message_store(..., buf, count=0)
-> linedisp_display(linedisp, buf, count=0)
-> msg[count - 1] == '\n' ; OOB read

The kernfs write buffer for that store is a 1-byte allocation
(kernfs_fop_write_iter() does kmalloc(len + 1) with len == 0),
so msg[-1] is a 1-byte read before the slab object. On a
KASAN-enabled kernel this trips an out-of-bounds report and
panics; on stock kernels it silently reads adjacent slab data
and, if that byte happens to be '\n', the following count--
wraps ssize_t 0 to -1 and is then passed to kmemdup_nul().

linedisp_display() is reached from the message_store() sysfs
callback (drivers/auxdisplay/line-display.c message attribute,
mode 0644) and from the in-tree initial-message setup with
count == -1, so the OOB path is only userspace-triggerable via
zero-byte writes; vfs_write() does not short-circuit on
count == 0 and kernfs_fop_write_iter() dispatches the store
callback regardless.

Guard the trailing-newline trim with a count check. The
existing if (!count) block then takes the clear-display path
unchanged.

Affects every auxdisplay driver that registers via
linedisp_register() / linedisp_attach(): ht16k33, max6959,
img-ascii-lcd, seg-led-gpio.
Published: 2026-07-19
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel’s auxdisplay line-display subsystem contains an out-of-bounds read when a user writes zero bytes to the message sysfs attribute. The function unserializes the input without checking length first, so msg[count-1] is accessed with count=0, resulting in a read of memory before the allocated buffer. On KASAN-enabled builds this triggers a fault; on normal builds it silently reads adjacent slab data, potentially revealing nearby kernel memory contents.

Affected Systems

The flaw is present in any Linux kernel that utilizes auxdisplay drivers registered via linedisp_register, specifically those such as ht16k33, max6959, img-ascii-lcd, and seg-led-gpio. As the code path is executed for every zero-byte write, any system that loads these drivers and grants write permission to the message attribute is potentially exposed.

Risk and Exploitability

The EPSS score is below 1 % and the vulnerability is not listed in CISA’s KEV catalog, indicating a low probability of current exploitation. Based on the description, it is inferred that a local attacker with write access could obtain a kernel out-of-bounds read and potentially trigger a panic in a KASAN-enabled build. The out-of-bounds read exposes adjacent memory contents, which could lead to information disclosure. The impact is limited to the local system context; however, patching is strongly recommended.

Generated by OpenCVE AI on August 4, 2026 at 06:35 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that contains the CVE-2026-63949 fix.
  • If upgrading is not immediately possible, unload or disable all auxdisplay drivers registered via linedisp_register (e.g., ht16k33, max6959, img-ascii-lcd, seg-led-gpio).
  • Ensure that no process writes zero-byte strings to the auxdisplay/sysfs message attribute; if unavoidable, restrict write permissions or modify scripts to prevent such writes.

Generated by OpenCVE AI on August 4, 2026 at 06:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-8593-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8603-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8618-1 Linux kernel vulnerabilities
History

Mon, 27 Jul 2026 20:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20
CWE-200

Tue, 21 Jul 2026 23:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-20
CWE-200

Tue, 21 Jul 2026 12:15:00 +0000


Sun, 19 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: auxdisplay: line-display: fix OOB read on zero-length message_store() linedisp_display() unconditionally reads msg[count - 1] before checking whether count is zero, so a write of zero bytes to the message sysfs attribute hits msg[-1]: write(fd, "", 0); -> message_store(..., buf, count=0) -> linedisp_display(linedisp, buf, count=0) -> msg[count - 1] == '\n' ; OOB read The kernfs write buffer for that store is a 1-byte allocation (kernfs_fop_write_iter() does kmalloc(len + 1) with len == 0), so msg[-1] is a 1-byte read before the slab object. On a KASAN-enabled kernel this trips an out-of-bounds report and panics; on stock kernels it silently reads adjacent slab data and, if that byte happens to be '\n', the following count-- wraps ssize_t 0 to -1 and is then passed to kmemdup_nul(). linedisp_display() is reached from the message_store() sysfs callback (drivers/auxdisplay/line-display.c message attribute, mode 0644) and from the in-tree initial-message setup with count == -1, so the OOB path is only userspace-triggerable via zero-byte writes; vfs_write() does not short-circuit on count == 0 and kernfs_fop_write_iter() dispatches the store callback regardless. Guard the trailing-newline trim with a count check. The existing if (!count) block then takes the clear-display path unchanged. Affects every auxdisplay driver that registers via linedisp_register() / linedisp_attach(): ht16k33, max6959, img-ascii-lcd, seg-led-gpio.
Title auxdisplay: line-display: fix OOB read on zero-length message_store()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-07-19T14:55:42.679Z

Reserved: 2026-07-19T07:54:57.023Z

Link: CVE-2026-63949

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

Severity :

Publid Date: 2026-07-19T00:00:00Z

Links: CVE-2026-63949 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T06:45:03Z

Weaknesses