CVE-2026-45978
Medium · 5.5CVSS
5.5
EPSS
0.1%
Published
May 27, 2026
CISA due date
—
Cloudanix analysis
A local user or program may be able to crash certain Linux systems that include an affected Greybus lights driver.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Denial of service
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
This is a local denial-of-service vulnerability in the Linux kernel Greybus lights staging driver. During light configuration, the driver records a non-zero channel count before successfully allocating the channel array. If the allocation fails, the release path iterates over the recorded channel count and dereferences a NULL channels pointer, causing a kernel NULL pointer dereference. The likely result is a kernel oops or panic, depending on kernel configuration and panic-on-oops settings, leading to service disruption or system crash. The flaw does not provide confidentiality or integrity impact based on the published details.
Why it matters to the business
Systems that load and expose the affected Greybus lights driver could be crashed by a local authenticated user or local process, causing downtime for affected devices or workloads. The risk is reduced by the local-access requirement, low EPSS score, no known public exploit maturity, and no CISA KEV listing, but it can still matter for multi-user Linux systems, embedded devices, development systems, or environments where untrusted local code can run. Because this is in a staging driver, exposure is likely limited to systems that compile, load, or ship the Greybus lights component.
How an attack unfolds
An attacker first needs local code execution or an authenticated local session on a system using an affected Linux kernel with the Greybus lights staging driver available and reachable. The attacker then triggers the Greybus lights configuration path in a way that causes allocation of the channels array to fail after the driver has already stored a non-zero channel count. When the driver unwinds and calls the release routine, the cleanup code trusts the stored count and walks the channels pointer even though allocation failed and the pointer is NULL. This causes a kernel NULL pointer dereference, producing a kernel oops or panic and denying service to the host or device. There is no current indication from the provided intelligence that this vulnerability is being exploited by named threat actors or ransomware campaigns.
How to fix it
Update to a Linux kernel build that includes the upstream fix for the Greybus lights driver: allocate the channels array before publishing channels_count so the cleanup path cannot walk a NULL pointer. Because no exact fixed package versions were provided, use the fixed kernel versions supplied by the relevant Linux distribution, device vendor, or upstream stable kernel branch once available. If immediate patching is not possible, reduce exposure by disabling or not loading the Greybus lights staging driver where it is not required, removing the module from deployed kernel builds, blacklisting the module, restricting local shell access, and limiting the ability of untrusted users or workloads to interact with Greybus-related device interfaces. Where operationally acceptable, configure crash recovery to reduce downtime, but do not treat reboot automation as a substitute for patching.
How to confirm the fix worked
Confirm remediation by verifying that the running kernel package or source tree includes the Greybus lights fix that allocates the channels array before setting channels_count in gb_lights_light_config(). On packaged distributions, verify the installed kernel version against the vendor advisory or changelog for this vulnerability. On custom kernels, inspect the relevant Greybus lights driver source and confirm the corrected allocation/order-of-assignment logic is present. Validate exposure by checking whether the Greybus lights driver is compiled into the kernel or available as a loadable module, whether it is currently loaded, and whether Greybus-related device interfaces are accessible to local users. After patching or mitigation, confirm the system is booted into the updated kernel and that the vulnerable module is absent, unloaded, or fixed.
Typical attack path
- Gain local access to a Linux system where the affected Greybus lights staging driver is present, loaded, or otherwise reachable.
- Interact with the Greybus lights functionality through the available local interface or device path.
- Trigger the vulnerable light configuration path while inducing or relying on memory allocation failure for the channels array.
- Cause the cleanup path to execute with a non-zero channel count and a NULL channels pointer.
- Crash the kernel through a NULL pointer dereference, resulting in denial of service or reboot depending on system configuration.
How to detect it
To determine whether this was already exploited or triggered, review kernel and system logs for oops, panic, NULL pointer dereference, or general protection fault messages referencing the Greybus lights driver or functions such as gb_lights_light_config and gb_lights_release. Relevant sources include dmesg output, journald kernel logs, /var/log/kern.log, /var/log/messages, /var/log/syslog, persistent pstore/ramoops records, crash dumps, kdump/vmcore artifacts, and hypervisor or device management logs that record unexpected reboots. Investigate suspicious timing correlations between local user sessions, container or workload execution, Greybus device interaction, memory pressure events, and abrupt reboots. Because the vulnerability is a crash condition rather than a code-execution primitive, detection is primarily based on kernel crash artifacts and function names in stack traces rather than durable attacker-created files. Absence of these strings does not prove non-exploitation if kernel logs were not persisted or crash dumps were not collected.
- gb_lights_light_config
- gb_lights_release
- greybus lights
- NULL pointer dereference
- BUG: kernel NULL pointer dereference
- Oops:
- Kernel panic - not syncing
- RIP: gb_lights_release
- RIP: gb_lights_light_config
- Call Trace: gb_lights_release
- Call Trace: gb_lights_light_config
- Unable to handle kernel NULL pointer dereference
- /sys/module/greybus
- /sys/module/gb_lights
- gb_lights
What your security team should do
- Inventory Linux systems and embedded devices to determine whether the Greybus lights staging driver is compiled, packaged, or loaded.
- Prioritize patching systems that allow local user access, run untrusted workloads, or expose Greybus functionality.
- Apply vendor-provided kernel updates as they become available; for custom kernels, backport the upstream Greybus lights fix.
- If the driver is not required, disable or blacklist it and remove it from custom kernel configurations.
- Monitor kernel logs for NULL pointer dereferences or oops/panic events involving Greybus lights functions, especially gb_lights_light_config and gb_lights_release.
- Restrict local access and device-interface permissions on systems where patching is delayed.
- Review kernel panic-on-oops and automatic reboot settings to balance availability and forensic preservation requirements.
The record
In the Linux kernel, the following vulnerability has been resolved: staging: greybus: lights: avoid NULL deref gb_lights_light_config() stores channel_count before allocating the channels array. If kcalloc() fails, gb_lights_release() iterates the non-zero count and dereferences light->channels, which is NULL. Allocate channels first and only then publish channels_count so the cleanup path can't walk a NULL pointer.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-62966 ESPAsyncWebServer is an asynchronous HTTP and WebSocket server library for ESP32… CWE-476
- CVE-2026-59993 Picotls is a TLS protocol library that allows users select different crypto backends… CWE-476
- CVE-2026-62298 mouse07410/asn1c is an ASN.1 compiler. CWE-476
- CVE-2026-119842 A flaw was found in GStreamer's gst-plugins-base MicroDVD subtitle parser. CWE-476
- CVE-2026-120046 Nezha 2.0.0 before 2.4.0 contains a NULL pointer dereference vulnerability in… CWE-476
- CVE-2026-119728 A flaw was found in the H.264 video parser in gst-plugins-bad. CWE-476
- CVE-2026-119760 sniproxy through 0.7.0 contains a NULL pointer dereference vulnerability in… CWE-476
- CVE-2026-105924 A NULL pointer dereference vulnerability in the Qt QCborValue to JSON conversion of the… CWE-476