Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-46286

CVE-2026-46286: Linux Kernel Buffer Overflow Vulnerability

CVE-2026-46286 is a buffer overflow vulnerability in the Linux kernel's qcom-lpg LED driver that could lead to reading random data and improper chip configuration. This article covers technical details, impact, and mitigation.

Published:

CVE-2026-46286 Overview

CVE-2026-46286 is a Linux kernel vulnerability in the Qualcomm Light Pulse Generator (LPG) LED driver (leds/qcom-lpg). The driver uses FIELD_GET() to extract a value from a 3-bit register field when selecting high-resolution values. That field can represent up to 8 distinct values, but the indexed array contains only 5 entries. Without bounds checking, the driver can read out-of-bounds data and configure chip values from invalid memory.

Critical Impact

An out-of-bounds read in the qcom-lpg LED driver can cause the kernel to use uninitialized or attacker-influenced data when programming LED hardware, leading to undefined behavior or information exposure.

Affected Products

  • Linux kernel versions containing the leds-qcom-lpg driver prior to the fix
  • Devices using Qualcomm PMIC LPG hardware for LED control
  • Distributions shipping the affected kernel before backported patches

Discovery Timeline

  • 2026-06-08 - CVE-2026-46286 published to NVD
  • 2026-06-08 - Last updated in NVD database

Technical Details for CVE-2026-46286

Vulnerability Analysis

The qcom-lpg driver controls LED brightness using Pulse Width Modulation (PWM) on Qualcomm Power Management Integrated Circuits (PMICs). When selecting the high-resolution PWM value, the driver reads a 3-bit register field using the FIELD_GET() macro. A 3-bit field yields index values from 0 through 7, but the lookup array only defines 5 entries.

If the hardware returns a value of 5, 6, or 7, the driver indexes past the end of the array. The kernel then reads adjacent memory and treats those bytes as legitimate resolution settings. The patched code adds an explicit bounds check before indexing the array, falling back to a safe default when the register value exceeds the array length.

This is an out-of-bounds read [CWE-125] in kernel-mode code. While the maintainer notes the hardware is likely to return sane values, defensive validation is required because trusting hardware-supplied register contents is unsafe.

Root Cause

The root cause is a mismatch between the width of the register bitfield extracted by FIELD_GET() and the size of the resolution lookup array. The code assumes the hardware-supplied index always fits within the array bounds, but the encoding allows values that do not.

Attack Vector

The vector is local and requires a condition in which the LPG register returns an unexpected value, either through hardware fault, firmware misconfiguration, or a compromised lower-level component capable of influencing PMIC state. The result is reading and acting on uninitialized memory adjacent to the resolution array.

No public proof-of-concept exploit is available. Refer to the upstream commits for the precise code change.

Detection Methods for CVE-2026-46286

Indicators of Compromise

  • Unexpected LED brightness, frequency, or PWM resolution behavior on devices using Qualcomm LPG hardware
  • Kernel warnings or KASAN reports referencing lpg_lut_store, lpg_apply_freq, or related functions in the qcom-lpg driver
  • Anomalous register reads in PMIC SPMI traces showing high-resolution field values above the expected range

Detection Strategies

  • Enable Kernel Address Sanitizer (KASAN) in test builds to surface out-of-bounds reads in the qcom-lpg code path
  • Audit installed kernel versions across the fleet and compare against the patched commits listed in the Linux kernel stable tree
  • Review build configurations for CONFIG_LEDS_QCOM_LPG to identify systems that compile in the vulnerable driver

Monitoring Recommendations

  • Collect kernel logs centrally and alert on qcom-lpg driver warnings or hardware initialization failures
  • Track kernel package versions through configuration management to confirm patch deployment across affected devices
  • Monitor vendor advisories for downstream Android and embedded distributions that integrate Qualcomm PMIC drivers

How to Mitigate CVE-2026-46286

Immediate Actions Required

  • Update to a Linux kernel release that includes the upstream fix referenced in the kernel stable commits
  • Inventory devices using Qualcomm PMIC LPG LED hardware and prioritize them for patching
  • Apply vendor-supplied kernel updates for Android, ChromeOS, and embedded Linux platforms that ship the qcom-lpg driver

Patch Information

The fix adds a bounds check before indexing the high-resolution array in the leds-qcom-lpg driver. The patched commits are available in the Linux kernel stable tree, including commit 28a2e047d037, commit 36ce3094dc50, commit 438e357b3cc6, commit d45963a93c14, and commit f67a24e75d32.

Workarounds

  • Disable the leds-qcom-lpg kernel module on systems where LED control via Qualcomm LPG is not required
  • Rebuild custom kernels with CONFIG_LEDS_QCOM_LPG=n when patching upstream is not immediately feasible
  • Restrict access to interfaces that allow userspace to trigger LPG reconfiguration on multi-tenant or untrusted systems

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.