Skip to main content

Linux Kernel ASoC EUVDEUVD-2026-86764

| CVE-2026-97910 HIGH
2026-09-25 Linux GHSA-hmww-phv2-5f63
7.8
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Open SPRD compress audio device (PR:L)
  2. Delivery
    Set oversized fragment/buffer via SET_PARAMS
  3. Exploit
    write() in SETUP state reaches copy callback
  4. Execution
    copy_from_user overflows fixed IRAM/DDR buffer
  5. Persist
    Corrupt adjacent kernel memory
  6. Impact
    Escalate privileges or crash kernel

Vulnerability Assessment

Exploitation Conditions

Requires local access to a system running the Linux ASoC sound/soc/sprd compress-audio platform driver - i.e., Unisoc/Spreadtrum SoC hardware with the SPRD compress PCM device exposed and the calling user permitted to open it (typically audio-group membership, matching PR:L). The attacker configures a fragment_size larger than the fixed 32K IRAM data area and/or a buffer_size larger than the fixed 2M DDR data area via the SNDRV_COMPRESS_SET_PARAMS ioctl, then issues a write(); notably NO SNDRV_PCM_TRIGGER_START and no user interaction are needed. Limiting factors: exploitation is confined to platforms that actually build and load this SPRD driver (hardware-specific), requires local presence and device access, but is otherwise deterministic (AC:L) and does not depend on any non-default configuration flag.

Impact

The CVSS 3.1 base vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (7.8, HIGH) is internally consistent with the description: this is a LOCAL (AV:L) vulnerability requiring a low-privileged user (PR:L) with access to the SPRD compress audio device, exploitable deterministically with no race and no user interaction (AC:L/UI:N). No EPSS score, no CISA KEV listing, and no public exploit are present in the input - exploitation status is 'no public exploit identified at time of analysis' (the flaw was found by the 'Atuin' automated discovery engine, whose reproducer is not public). Unlike many sibling kernel CVEs that are crash-dominant DoS mislabeled with C:H/I:H, this one describes a genuine, controlled out-of-bounds WRITE of fully user-controlled data past fixed 32K IRAM and 2M DDR allocations, which is a credible memory-corruption/privilege-escalation primitive rather than a mere crash - so the HIGH integrity/availability impacts are more defensible here than in the DoS-only cousins, though a clean confidentiality-disclosure path (C:H) is not demonstrated. The dominant limiting factor is deployment scope: the sound/soc/sprd driver only exists on Unisoc/Spreadtrum SoC platforms, so real-world exposure is narrow. Net: a legitimate local-LPE-class kernel bug worth patching on affected Unisoc hardware, but low urgency for the general fleet given no active exploitation, no public PoC, and a hardware-specific footprint.

Exploit ScenarioDerived

A local user with access to the SPRD compress-audio PCM device opens it and issues SNDRV_COMPRESS_SET_PARAMS with a fragment_size/buffer_size far larger than the fixed 32K IRAM and 2M DDR buffers (the compress core only rejects a u32 overflow of fragment_size*fragments, allowing ~4GB logical sizes). The attacker then simply calls write() while still in SETUP state - no SNDRV_PCM_TRIGGER_START is needed - driving sprd_platform_compr_copy() to copy_from_user() and wrap-copy fully attacker-controlled data past the physical allocations, corrupting adjacent kernel memory. No public exploit exists yet; the flaw was surfaced by an automated discovery engine.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 25, 2026

An out-of-bounds write in the Linux kernel's ASoC compress-audio platform driver for Spreadtrum/Unisoc (sprd) SoCs lets an authenticated local user who can open the SPRD compress PCM device corrupt kernel memory: the driver allocates fixed 32 KB IRAM and 2 MB DDR stage buffers but derives all copy lengths from the user-controlled fragment_size and buffer_size supplied via SNDRV_COMPRESS_SET_PARAMS, so an oversized request overflows past those fixed allocations during write(). The CVSS 3.1 vector is AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H (7.8, HIGH), reflecting deterministic local exploitation with no user interaction and no need for SNDRV_PCM_TRIGGER_START, though impact is confined to Unisoc/Spreadtrum platforms that actually build and load this driver. Vendor-released patches are available (Linux 6.12.111, 6.18.53, 7.2.7, and 7.3-rc3); no public exploit code or confirmed active exploitation (CISA KEV) was identified at time of analysis. Discovery is credited to Atuin, an automated vulnerability discovery engine, and the issue is tracked as EUVD-2026-86764.

RemediationAI

Apply the vendor-released kernel patches: upgrade to Linux 6.12.111, 6.18.53, 7.2.7, or 7.3-rc3 (or later), which backport the upstream stable fixes at commits 38a9bb5221bcdece5507299f739c6751d8fc16b2, ff63b0adc4f6a5b61c8393d204fac44c594c4d39, 8064b73997f137c00a7e2e38295a763f9423928b, and 7a4ce92d150b9e7ecf1a710a34d8cdeb590d3751 (https://git.kernel.org/stable/c/7a4ce92d150b9e7ecf1a710a34d8cdeb590d3751); these add range validation in set_params() against the fixed 32 KB IRAM and 2 MB DDR buffers and reduce the advertised maximum fragment size to 32 KB. Where immediate patching is not possible, restrict access to the SPRD compress device nodes (/dev/snd/compr*) so that only trusted, fully privileged processes can open them - the driver is reachable only by users permitted to open the compress PCM, so tightening ownership/permissions on those nodes and reviewing audio-group membership removes the PR:L entry point, at the cost of breaking compressed-audio playback for unprivileged applications. As a stronger compensating control on hardware where compressed offload is not required, blacklist or unload the sprd ASoC compress platform module entirely (e.g., modprobe blacklist plus removal from the initramfs), which eliminates the attack surface but disables all audio function on the affected Spreadtrum/Unisoc audio path. Kernel livepatch or backporting the four stable commits to a vendor kernel is the recommended path for embedded devices that cannot move off their BSP kernel; note that any mitigation relying on device permissions should be paired with audit of existing audio-group members, since PR:L is the only meaningful barrier to exploitation. No public exploit code was identified at time of analysis, so there is no immediate evidence of exploitation pressure, but the flaw is deterministic and warrants prompt patching on affected Unisoc/Spreadtrum platforms.

Affected VersionsENISA

Linux cce1396936ef2b347d622b4d49718818eb32029d <7a4ce92d150b9e7ecf1a710a34d8cdeb590d3751
Linux patch: 6.18.53
Linux 5.2
Linux patch: 6.12.111
Linux cce1396936ef2b347d622b4d49718818eb32029d <8064b73997f137c00a7e2e38295a763f9423928b
Linux cce1396936ef2b347d622b4d49718818eb32029d <38a9bb5221bcdece5507299f739c6751d8fc16b2
Linux patch: 0
Linux patch: 7.2.7
Linux cce1396936ef2b347d622b4d49718818eb32029d <ff63b0adc4f6a5b61c8393d204fac44c594c4d39
Linux patch: 7.3-rc3

Affected Packages

euvd linux no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

ALSA System-on-Chip (ASoC) is the Linux kernel framework for embedded audio; the compress offload API (snd_compr / SNDRV_COMPRESS_* ioctls) lets userspace stream compressed audio to hardware decoders through /dev/snd/compr* devices. The sprd platform driver implements this for Spreadtrum/Unisoc SoCs with a two-stage pipeline: a 32 KB IRAM staging buffer (stage 0) and a 2 MB DDR buffer (stage 1), both allocated at fixed sizes in sprd_platform_compr_open(). The core validate helper snd_compress_check_input() only guards against a u32 overflow of fragment_size * fragments, so a local user can legitimately request a logical buffer of roughly 4 GB via SNDRV_COMPRESS_SET_PARAMS; sprd_platform_compr_copy() then trusts runtime->fragment_size and the write() count without ever comparing them to the physical buffer sizes. Two distinct corruptions follow: a fragment_size above 32 KB makes the stage 0 copy_from_user() write past the IRAM allocation, and a buffer_size above 2 MB makes the wrapping copy at the tail of sprd_platform_compr_copy() write fully attacker-controlled data past the DDR buffer - reachable from SETUP state, with no SNDRV_PCM_TRIGGER_START required. No CWE identifier was supplied in the source data, but the root cause maps directly to CWE-787 (out-of-bounds write) through missing size validation of externally supplied parameters against fixed allocation bounds, matching the supplied 'Buffer Overflow' tag. The fix rejects set_params() values that do not fit the fixed buffers and corrects the advertised maximum fragment size from 128 KB (which never fit the 32 KB IRAM buffer and appears to have been carried over from the qdsp6 driver, where buffers are sized according to the advertised maxima) to 32 KB, making the advertised limits self-consistent at 32 KB * 64 = 2 MB, equal to the DDR buffer size.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Linux) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.3 HIGH

Local low-priv access to the sprd compress device (AV:L/PR:L), deterministic no-race trigger (AC:L); fully controlled OOB write gives high integrity/availability impact but no clear disclosure path so C:L.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE 5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat 5.5 MEDIUM

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
CVSS changed
Sep 25, 2026 - 15:22 NVD
7.8 (HIGH)
Patch available
Sep 25, 2026 - 11:02 EUVD
CVE Published
Sep 25, 2026 - 10:22 cve.org
HIGH 7.8
CVE Published
Sep 25, 2026 - 10:22 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

ASoC: sprd: validate compress buffer sizes against fixed allocations

sprd_platform_compr_open() allocates the stage 0 IRAM buffer (32K data area) and the stage 1 DDR buffer (2M data area) with fixed sizes, but sprd_platform_compr_copy() derives all copy lengths from the user controlled runtime->fragment_size and the write() count, never comparing them against the physical buffer sizes. The compress core only checks fragment_size * fragments for an u32 overflow in snd_compress_check_input(), so a local user can configure a logical buffer of up to ~4GB via SNDRV_COMPRESS_SET_PARAMS, far exceeding the fixed allocations.

A fragment_size larger than the 32K IRAM data area makes the stage 0 copy_from_user() overflow past the IRAM allocation, and a buffer_size larger than the 2M DDR buffer makes the wrapping copy at the end of sprd_platform_compr_copy() write fully user controlled data past the buffer. No SNDRV_PCM_TRIGGER_START is needed, a write() in SETUP state reaches the copy callback directly.

Reject parameters that do not fit into the fixed buffers in set_params(), and fix the advertised max fragment size: 128K never fitted into the 32K IRAM buffer. The caps values may have been carried over from the qdsp6 driver, which allocates its buffers according to the advertised maxima, unlike this driver. With 32K as max fragment size the advertised limits are self-consistent: 32K * 64 = 2M equals the DDR buffer size.

Discovered by Atuin - Automated Vulnerability Discovery Engine.

Executive ViewAI

Why It Matters

Unisoc/Spreadtrum SoC devices running the Linux kernel's ASoC compress-audio driver are affected by a high-severity memory corruption flaw that an authenticated local user can trigger. This could allow kernel memory corruption, potentially leading to privilege escalation or system instability on affected hardware, so organizations with such devices in their fleets should prioritize remediation. No public exploit identified at time of analysis, but leadership should ensure vendor patches are applied to protect device integrity and user data.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 96% exploitable
Prevalence
Low
driver only present on Unisoc/Spreadtrum SoC audio platforms, not general Linux
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
Medium

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Not-Affected
SUSE Linux Enterprise High Availability Extension 16.0 Not-Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy