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

ALSA: usx2y: bound the hwdep mmap fault offset

snd_us428ctls_vm_fault() turns the faulting page offset into a kernel
address with no bound of any kind:

offset = vmf->pgoff << PAGE_SHIFT;
vaddr = (char *)(...)->us428ctls_sharedmem + offset;
page = virt_to_page(vaddr);
get_page(page);
vmf->page = page;

return 0;

snd_us428ctls_mmap() checks only the length of the mapping, never the
offset, and us428ctls_sharedmem is a single page from
alloc_pages_exact(). For a character device file_mmap_size_max()
returns ULONG_MAX, so the mm layer imposes no ceiling either. Every page
offset above zero resolves to a struct page outside the object, and the
handler installs it into the caller's address space read-write; the vma
is not marked read-only.

The caller picks the page frame with a single mmap() argument and gets
read-write access to a page of kernel memory it does not own; an offset
that lands in an unpopulated vmemmap region oopses instead.

A process that can open the hwdep node of an attached US-X2Y reaches
this after loading the FPGA image through the same node; no capability
check is involved.

On 7.2.0-rc5 (arm64), mmap() with a large offset:

Unable to handle kernel paging request at virtual address fffffdffc45d5ac8
pc : snd_us428ctls_vm_fault+0x68/0x140 [snd_usb_usx2y]
Call trace:
snd_us428ctls_vm_fault+0x68/0x140 [snd_usb_usx2y]
__do_fault
__handle_mm_fault
handle_mm_fault
el0_da

Reject any offset outside the shared region. The pcm hwdep handler in
usx2yhwdeppcm.c computes its address the same way and needs the same
bound.

Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>
Published: 2026-08-22
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A flaw in the Linux ALSA usx2y driver allows a process that can open the hardware device driver (hwdep) node to calculate a kernel address from an arbitrary page offset without bounds checking. The fault handler translates the offset into a kernel virtual address and returns a page struct that can be mapped read‑write into user space. An offset outside the single allocated shared page results in a read of kernel memory that the process does not own, and writing to that memory can corrupt kernel objects. This enables a local attacker to read and modify arbitrary kernel memory, effectively providing kernel‑level code execution.

Affected Systems

All current Linux kernel releases that include the snd_usb_usx2y module (e.g., versions 5.x, 6.x, and 7.x for arm64) and any system connected to a US‑X2Y audio device. The bug is triggered when an application loads an FPGA image through the same device, so any user or process with access to the device node is potentially affected. Systems using the ALSA hwdep interface for US‑X2Y hardware are at risk.

Risk and Exploitability

The flaw is a local privilege escalation vector; any process that can access the device node can exploit it. No external network attack surface is required. The EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog, but the CVSS score is not provided. Given the ability to read/write arbitrary kernel memory, the risk is high and the potential impact is full kernel compromise. The attack requires no special capabilities beyond standard user permission on the hwdep node, so it can be exercised by any unprivileged user that has upload rights for the FPGA image. The lack of bounds checking and permission validation is the core weakness.

Generated by OpenCVE AI on August 22, 2026 at 17:06 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel version that includes the fix for the usx2y hwdep mmap bounds, such as the kernel build containing commit 10a87401fb3148c388e55df0148295b3b137da07 or newer releases that reference this commit.
  • Restrict access to the /dev interface for US‑X2Y devices by setting appropriate udev rules or permission masks so that only privileged users can open the hwdep node. This limits the ability of untrusted processes to trigger the fault.
  • If an immediate kernel update is not possible, disable the US‑X2Y driver or block the device node using seccomp, AppArmor, or SELinux policies to prevent untrusted processes from accessing the kernel module until a patch is applied.

Generated by OpenCVE AI on August 22, 2026 at 17:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 15:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ALSA: usx2y: bound the hwdep mmap fault offset snd_us428ctls_vm_fault() turns the faulting page offset into a kernel address with no bound of any kind: offset = vmf->pgoff << PAGE_SHIFT; vaddr = (char *)(...)->us428ctls_sharedmem + offset; page = virt_to_page(vaddr); get_page(page); vmf->page = page; return 0; snd_us428ctls_mmap() checks only the length of the mapping, never the offset, and us428ctls_sharedmem is a single page from alloc_pages_exact(). For a character device file_mmap_size_max() returns ULONG_MAX, so the mm layer imposes no ceiling either. Every page offset above zero resolves to a struct page outside the object, and the handler installs it into the caller's address space read-write; the vma is not marked read-only. The caller picks the page frame with a single mmap() argument and gets read-write access to a page of kernel memory it does not own; an offset that lands in an unpopulated vmemmap region oopses instead. A process that can open the hwdep node of an attached US-X2Y reaches this after loading the FPGA image through the same node; no capability check is involved. On 7.2.0-rc5 (arm64), mmap() with a large offset: Unable to handle kernel paging request at virtual address fffffdffc45d5ac8 pc : snd_us428ctls_vm_fault+0x68/0x140 [snd_usb_usx2y] Call trace: snd_us428ctls_vm_fault+0x68/0x140 [snd_usb_usx2y] __do_fault __handle_mm_fault handle_mm_fault el0_da Reject any offset outside the shared region. The pcm hwdep handler in usx2yhwdeppcm.c computes its address the same way and needs the same bound. Discovered by XBOW, triaged by Baul Lee <baul.lee@xbow.com>
Title ALSA: usx2y: bound the hwdep mmap fault offset
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-22T15:32:19.696Z

Reserved: 2026-08-15T05:44:03.922Z

Link: CVE-2026-74641

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-22T16:16:37.383

Modified: 2026-08-22T16:16:37.383

Link: CVE-2026-74641

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T19:00:14Z

Weaknesses

No weakness.