Cloudanix VulnDB

CVE-2026-46088

Medium · 5.5

CVSS

5.5

EPSS

0.2%

Published

May 27, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A local user may be able to crash affected Linux systems by sending malformed audio control data, causing downtime until the system is restarted or patched.

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 flaw in the Linux kernel ALSA control subsystem. A malformed ALSA control enumeration names buffer can cause snd_ctl_elem_init_enum_names() to call fortified strnlen() after the buffer length has been exhausted. On kernels built with CONFIG_FORTIFY_SOURCE, particularly where Clang loses object-size tracking inside the loop, the fortify check can trigger a BRK exception and kernel panic instead of returning a normal validation error. Successful exploitation impacts availability only: it can crash the affected host but does not directly provide code execution, privilege escalation, or data disclosure.

Why it matters to the business

An attacker with local access to an affected Linux system and sufficient ability to interact with ALSA control interfaces may be able to crash the machine, interrupting workloads, user sessions, appliances, kiosks, embedded devices, or audio-enabled services. The risk is lower than remotely exploitable issues because exploitation requires local access, and there is no current KEV listing, ransomware association, or known public exploit maturity; however, a kernel panic can still cause operational disruption, data loss from abrupt shutdown, and service unavailability on exposed multi-user or endpoint systems.

How an attack unfolds

An attacker first obtains local execution on an affected Linux system, such as a shell, compromised user account, container or desktop session with access to relevant ALSA device interfaces. The attacker then submits a crafted ALSA control element definition or related ioctl input containing an enumeration names buffer where the declared item count exceeds the remaining valid buffer contents. As the kernel parses the names, the pointer advances and buf_len is decremented until it reaches zero while additional items remain. On the next loop iteration, the vulnerable code calls strnlen() with a zero maximum length. With fortified string handling enabled, the kernel may evaluate the dynamic object size before the normal empty-name error path, resulting in a fortify failure or BRK exception. The system then panics, causing a denial of service and requiring reboot or watchdog recovery.

How to fix it

Apply a vendor kernel update that includes the upstream ALSA control fix adding a buf_len == 0 guard before strnlen() in snd_ctl_elem_init_enum_names(). Because no specific fixed versions were provided, use distribution and appliance vendor advisories to identify the first patched kernel for each supported release stream. Where immediate patching is not possible, reduce exposure by restricting local shell access, limiting membership in audio-related groups, tightening permissions on /dev/snd/control* device nodes, disabling or blacklisting unused sound/ALSA functionality on servers that do not require audio, and applying container/device cgroup policies that prevent untrusted workloads from accessing sound devices. Reboot into the patched kernel after installation; merely installing the package is insufficient if the running kernel remains vulnerable.

How to confirm the fix worked

Confirm remediation by verifying the running kernel version, not only the installed package version, against the relevant Linux distribution or vendor advisory. Check that the host has rebooted into the patched kernel using commands such as uname -a and package-manager kernel inventory tools. For source-based validation, confirm the ALSA control code includes a loop-entry check that rejects processing when buf_len is zero before calling strnlen() in snd_ctl_elem_init_enum_names(). Validate exposure by reviewing whether /dev/snd/control* exists and whether untrusted users, containers, or applications can access those device nodes. If using configuration management or vulnerability scanning, ensure scanners evaluate the active kernel and not stale package metadata.

Typical attack path

  1. Gain local execution on an affected Linux host.
  2. Confirm access to ALSA control interfaces, commonly through /dev/snd/control* devices or an application path that can create or modify ALSA controls.
  3. Submit malformed ALSA control enumeration metadata with an exhausted names buffer but remaining enum items.
  4. Trigger snd_ctl_elem_init_enum_names() during kernel-side parsing of the malformed control data.
  5. Cause CONFIG_FORTIFY_SOURCE fortified strnlen() to raise a kernel exception before normal validation handles the malformed input.
  6. Crash the kernel, resulting in system unavailability until reboot or recovery.

How to detect it

To assess possible prior exploitation, review kernel and system logs from journald, dmesg archives, /var/log/kern.log, /var/log/messages, crash dump infrastructure, kdump/vmcore records, endpoint telemetry, and hypervisor reset/watchdog events. Look for kernel panic, fortify panic, BRK exception, BUG/Oops, or crash traces involving ALSA control parsing, snd_ctl_elem_init_enum_names(), strnlen(), or sound control device activity shortly before an unexpected reboot. Correlate events with local user sessions, processes accessing /dev/snd/control*, container device mappings that expose sound devices, fuzzing tools, test harnesses, or unusual ioctl-heavy interaction with ALSA devices. Absence of these artifacts does not prove non-exploitation, because abrupt kernel panics may truncate logs unless persistent journaling, netconsole, pstore, kdump, or remote log forwarding was enabled.

  • snd_ctl_elem_init_enum_names
  • ALSA: control
  • strnlen
  • FORTIFY_SOURCE
  • fortify_panic
  • detected buffer overflow
  • kernel panic
  • Kernel panic - not syncing
  • Oops:
  • BRK exception
  • /dev/snd/controlC0
  • /dev/snd/controlC1
  • /dev/snd/control*
  • snd_ctl_elem
  • snd_ctl_ioctl
  • CONFIG_FORTIFY_SOURCE
  • vmcore
  • /var/crash
  • /sys/fs/pstore

What your security team should do

  • Prioritize patching on multi-user Linux systems, endpoints, embedded devices, kiosks, VDI hosts, and any systems where untrusted users or workloads can access ALSA devices.
  • Verify that patched kernel packages are followed by a reboot into the fixed kernel across affected fleets.
  • Restrict access to /dev/snd/control* and audio-related groups for users and containers that do not require sound device access.
  • Disable ALSA or sound device exposure on servers and container platforms where audio functionality is unnecessary.
  • Monitor kernel logs for fortify, BRK, ALSA control, and kernel panic events that may indicate attempted triggering or fuzzing.
  • Review local privilege boundaries: do not expose host sound devices into untrusted containers unless required and explicitly risk-accepted.
  • Track vendor advisories for exact fixed kernel versions because the input does not provide product-specific fixed releases.

The record

In the Linux kernel, the following vulnerability has been resolved: ALSA: control: Validate buf_len before strnlen() in snd_ctl_elem_init_enum_names() snd_ctl_elem_init_enum_names() advances pointer p through the names buffer while decrementing buf_len. If buf_len reaches zero but items remain, the next iteration calls strnlen(p, 0). While strnlen(p, 0) returns 0 and would hit the existing name_len == 0 error path, CONFIG_FORTIFY_SOURCE's fortified strnlen() first checks maxlen against __builtin_dynamic_object_size(). When Clang loses track of p's object size inside the loop, this triggers a BRK exception panic before the return value is examined. Add a buf_len == 0 guard at the loop entry to prevent calling fortified strnlen() on an exhausted buffer. Found by kernel fuzz testing through Xiaomi Smartphone.

Affected packages

Ecosystem Package Introduced Fixed
openSUSE:Tumbleweed kernel-source 0 7.0.11-1.1

Related vulnerabilities