MEDIUM 5.5

CVE-2026-53158: Linux Kernel fastrpc NULL Pointer Dereference – Snapdragon Devices

CVE-2026-53158 is a NULL pointer dereference in the Linux kernel's fastrpc driver that can cause a system crash during boot on Qualcomm Snapdragon platforms. The vulnerability occurs when the DSP (Digital Signal Processor) sends a message to the kernel before the fastrpc driver finishes initializing. The kernel tries to access an uninitialized data structure, leading to a crash. This is a local availability issue requiring local access, affecting systems running vulnerable kernel versions on affected Qualcomm platforms.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weaknesses (CWE)
CWE-476
Affected products
8 configuration(s)
Published / Modified
2026-06-25 / 2026-07-07

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: misc: fastrpc: Fix NULL pointer dereference in rpmsg callback A NULL pointer dereference was observed on Hawi at boot when the DSP sends a glink message before fastrpc_rpmsg_probe() has completed initialization: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000178 pc : _raw_spin_lock_irqsave+0x34/0x8c lr : fastrpc_rpmsg_callback+0x3c/0xcc [fastrpc] ... Call trace: _raw_spin_lock_irqsave+0x34/0x8c (P) fastrpc_rpmsg_callback+0x3c/0xcc [fastrpc] qcom_glink_native_rx+0x538/0x6a4 qcom_glink_smem_intr+0x14/0x24 [qcom_glink_smem] The faulting address 0x178 corresponds to the lock variable inside struct fastrpc_channel_ctx, confirming that cctx is NULL when fastrpc_rpmsg_callback() attempts to take the spinlock. There are two issues here. First, dev_set_drvdata() is called before spin_lock_init() and idr_init(), leaving a window where the callback can retrieve a valid cctx pointer but operate on an uninitialized spinlock. Second, the rpmsg channel becomes live as soon as the driver is bound, so fastrpc_rpmsg_callback() can fire before dev_set_drvdata() is called at all, resulting in dev_get_drvdata() returning NULL. Fix both issues by moving all cctx initialization ahead of dev_set_drvdata() so the structure is fully initialized before it becomes visible to the callback, and add a NULL check in fastrpc_rpmsg_callback() as a guard against any remaining window.

8 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in the fastrpc rpmsg callback mechanism within the Linux kernel. Two initialization-ordering issues combine to create a race condition: (1) dev_set_drvdata() is called before internal spinlocks and IDR structures are initialized, creating a window where the callback can retrieve a valid context pointer but operate on uninitialized synchronization primitives; (2) the rpmsg channel becomes active immediately upon driver binding, potentially firing callbacks before dev_set_drvdata() is invoked, resulting in NULL pointer dereference at offset 0x178 (the spinlock field in fastrpc_channel_ctx). The fix involves reordering initialization to complete all struct setup before making the context visible to callbacks, plus adding defensive NULL checks in the callback handler.

Business impact

Systems relying on Qualcomm DSP acceleration (common in mobile and edge computing) may experience unexpected reboots or denial of service during boot on affected platforms. For organizations using Snapdragon-based devices in production environments, this could impact service availability. The local nature of the vulnerability limits exposure to privileged or local users, but unprivileged triggering via DSP message timing makes it a stability concern for any system running the affected kernel.

Affected systems

The vulnerability affects the Linux kernel fastrpc driver, primarily impacting Qualcomm Snapdragon platforms (such as Hawi mentioned in the report). Any system running a vulnerable kernel version with the fastrpc driver enabled and Qualcomm GLINK messaging active is potentially affected. This includes mobile devices, IoT platforms, and edge compute nodes using Snapdragon processors. Verify your kernel version against the official Linux kernel security advisories for the specific affected version range.

Exploitability

Exploitability is limited by several factors: the vulnerability requires local system access (CVSS AV:L), cannot be triggered remotely, and does not allow privilege escalation or information disclosure. However, the timing-dependent race condition can be triggered naturally during system boot as the DSP firmware initializes, making it a reliability issue rather than requiring deliberate exploit action. A local user cannot easily weaponize this for unauthorized access, but the denial of service impact during boot affects all users of the system.

Remediation

The Linux kernel project has resolved this vulnerability by reordering the fastrpc_rpmsg_probe() initialization sequence to complete all struct setup (spinlock and IDR initialization) before calling dev_set_drvdata(), and by adding NULL pointer validation in fastrpc_rpmsg_callback(). Affected systems require a kernel update to a patched version. Verify the specific patched kernel version from the official Linux kernel security advisory or your distribution's security updates.

Patch guidance

Apply the latest kernel security updates from your Linux distribution. For Qualcomm Snapdragon-based systems, ensure the fastrpc driver initialization patch is included. Coordinate with your device manufacturer if running vendor-customized kernels, as backport timing varies. Test kernel updates on non-production systems first, particularly for devices relying on DSP functionality. Kernel updates typically require system reboot.

Detection guidance

Monitor system logs for NULL pointer dereference crashes (kernel panic traces mentioning fastrpc_rpmsg_callback or _raw_spin_lock_irqsave in the fastrpc module). Boot-time failures or intermittent reboots on Snapdragon devices are potential indicators. Check kernel version via 'uname -r' and cross-reference against patched versions in kernel security advisories. Reproduction is difficult without triggering specific DSP timing; focus on verifying patch application rather than active testing.

Why prioritize this

While CVSS scores this as MEDIUM severity (5.5), the vulnerability should be prioritized for systems relying on Snapdragon-based devices in production. The boot-time nature and local-only exposure lower the immediate threat, but potential service interruption justifies timely patching. Organizations running mobile infrastructure, IoT fleets, or edge compute nodes should prioritize kernel updates. This is lower priority for server-only deployments without Snapdragon hardware.

Risk score, explained

The CVSS 3.1 score of 5.5 (MEDIUM) reflects the local-only attack surface (AV:L), low complexity (AC:L), requirement for local privileges (PR:L), and lack of confidentiality or integrity impact (C:N/I:N). The availability impact is high (A:H) due to kernel crash potential. The score appropriately captures that this is a local stability issue rather than a remote or privilege-escalation vector, though the practical impact on boot reliability justifies aggressive patching timelines for affected hardware platforms.

Frequently asked questions

Is this vulnerability exploitable remotely?

No. The vulnerability requires local system access (CVSS AV:L) and cannot be triggered over a network. It manifests as a race condition during kernel initialization on systems with fastrpc and GLINK messaging enabled.

Does this affect all Linux systems?

No. This specifically affects systems running the Linux kernel with the fastrpc driver compiled/enabled, primarily Qualcomm Snapdragon platforms. Most desktop and server systems without Snapdragon hardware are unaffected.

Can this be exploited for privilege escalation or data theft?

No. The vulnerability only causes a kernel panic (denial of service). It does not allow unauthorized access, privilege escalation, or information disclosure (CVSS C:N/I:N/A:H).

What should I do if my device is affected?

Update your kernel to a patched version via your Linux distribution's security updates or your device manufacturer's firmware update process. For custom kernels, apply the upstream fix from the Linux kernel security advisory. Test the update on a non-production device first.

This analysis is based on publicly available vulnerability data and official Linux kernel security information. CVSS scores and vulnerability classifications are provided by authoritative sources and should be verified against the latest kernel security advisories. Organizations should consult their distribution's security bulletins and device manufacturers for patch availability and compatibility with their specific systems. The presence of fastrpc driver and GLINK messaging varies by system configuration; verify your environment's affected status before prioritizing remediation. Source: NVD (public-domain), retrieved 2026-08-03. Analysis generated by SEC.co (claude-haiku-4-5).