Skip to main content

Linux Kernel CVE-2026-93122

| EUVDEUVD-2026-82230 HIGH
2026-09-17 Linux GHSA-vcjh-87mp-cx8r
7.8
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

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

  1. Access
    Gain privileged local access to configfs gadget
  2. Delivery
    Configure UAC1/UAC2 function
  3. Exploit
    Write >10-entry rate list to p_srate/c_srate
  4. Execution
    Parser writes past fixed rate array
  5. Persist
    Kernel struct/memory corruption
  6. Impact
    Denial of service

Vulnerability Assessment

Exploitation Conditions

Requires local access with the ability to write to the USB gadget ConfigFS UAC1 or UAC2 rate-list attributes (e.g. p_srate/c_srate), which entails configfs being mounted and a USB gadget being configurable - normally root/privileged operations. The trigger is specifically supplying more than UAC_MAX_RATES (10) comma-separated sampling rates in a single attribute write. Limiting factors: no remote vector (AV:L), the affected code is only built/reachable when the UAC1/UAC2 gadget functions are compiled and instantiated, and the effect is bounded adjacent-memory corruption rather than arbitrary write; there is no user-interaction or network path.

Impact

The vendor CVSS 3.1 vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (7.8) rates this as a local, low-complexity, low-privilege OOB write with full CIA impact, but the vector's C:H/I:H is inconsistent with the described defect: writing an 11th+ comma-separated rate token walks past the fixed UAC_MAX_RATES (10) int array p_srates[]/c_srates[] inside struct f_uac1_opts / f_uac2_opts, a bounded, adjacent-field heap/struct corruption confirmed by UBSAN, not an information-disclosure or arbitrary-code primitive. Reaching the vulnerable store path requires writing to the UAC1/UAC2 configfs rate-list attributes (e.g. .../gadget/functions/uac1.*/p_srate), which in practice requires the ability to mount configfs and configure a USB gadget - an operation restricted to root/privileged users - so PR:L understates the real privilege requirement (closer to PR:H). No EPSS score, no CISA KEV listing, and no public POC are provided; the only 'exploit' is the vendor's own UBSAN reproducer. The CWE is listed as N/A but the behavior is a classic out-of-bounds array write (CWE-787), and the secondary bug (freeing the strsep-advanced cursor instead of the original kstrdup pointer) adds a memory leak / interior-free on some paths. Net: this is a legitimate local memory-safety bug but a low real-world priority - no evidence of exploitation, niche affected feature, and privileged local access needed.

Exploit ScenarioDerived

A local user or process already privileged enough to manage USB gadgets via configfs writes a rate list of more than ten comma-separated sampling rates to a UAC1 or UAC2 p_srate/c_srate attribute, causing the parser to write past the end of the fixed 10-entry rate array and corrupt adjacent kernel memory (crashing the kernel under UBSAN or corrupting the opts struct otherwise). No public exploit exists beyond the vendor's UBSAN reproducer; realistic impact is denial of service / memory corruption rather than code execution or data disclosure.

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 18, 2026

Local writes to the Linux kernel's USB gadget ConfigFS UAC1/UAC2 rate-list attributes (p_srate/c_srate) that contain more than ten comma-separated sampling rates overrun the fixed-size UAC_MAX_RATES int arrays p_srates[]/c_srates[] inside struct f_uac1_opts and struct f_uac2_opts, corrupting adjacent structure memory. The defect is reachable only by a privileged local actor who can configure a USB gadget with the UAC1/UAC2 functions compiled and instantiated; the assessed impact is bounded adjacent-memory corruption (low integrity impact plus a likely crash/availability impact) rather than an arbitrary-write or information-disclosure primitive. No public exploit has been identified at time of analysis, no CISA KEV entry exists, and vendor patches are available via the kernel stable tree (commits 844d83d5964b87919b958ff48405188c6ddae9cc and 3819c6f255a37c4d085ce9f264f9f11bf3c2c6bb), with EUVD listing 7.2.6 and 7.3-rc1 as patch versions.

RemediationAI

Upgrade to a kernel release that contains upstream fix commits 844d83d5964b87919b958ff48405188c6ddae9cc and 3819c6f255a37c4d085ce9f264f9f11bf3c2c6bb - EUVD records the patched versions as 7.2.6 and 7.3-rc1 - or cherry-pick those stable patches into your kernel tree; this is the primary and complete fix, as it both bounds the parse loop at UAC_MAX_RATES and corrects the kfree() of the advanced strsep() cursor (buffer-leak / interior-pointer free). If patching must be deferred, the practical compensating control is restricting who can write the gadget ConfigFS rate-list attributes: ensure the USB gadget configfs directory is root-owned with mode 0700 and that unprivileged users cannot mount configfs (e.g. remove the user/gadget mount from /etc/fstab or disable unprivileged mount support), accepting that this blocks legitimate delegated gadget configuration workflows. A stronger but more disruptive option is to stop compiling the affected functions by disabling CONFIG_USB_CONFIGFS_F_UAC1/CONFIG_USB_CONFIGFS_F_UAC2 (or not instantiating UAC1/UAC2 gadgets), which removes the attack surface entirely at the cost of USB audio gadget functionality. Note that building with CONFIG_UBSAN_BOUNDS only detects and logs (panic-on-warn would turn it into a DoS) and does not prevent the out-of-bounds write, so it should not be treated as a mitigation. Refer to the kernel stable commit links above and the NVD entry https://nvd.nist.gov/vuln/detail/CVE-2026-93122 for tracking.

Affected VersionsENISA

Linux patch: 0
Linux patch: 7.2.6
Linux a7339e4f5788bd088bb0be1f96a6cce459676ed0 <844d83d5964b87919b958ff48405188c6ddae9cc
Linux 5.18
Linux a7339e4f5788bd088bb0be1f96a6cce459676ed0 <3819c6f255a37c4d085ce9f264f9f11bf3c2c6bb
Linux patch: 7.3-rc1

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

The bug lives in the USB gadget ConfigFS interface for the USB Audio Class 1 and 2 functions (f_uac1.c / f_uac2.c). Each rate-list attribute store callback parses a comma-separated list of sampling rates with strsep() and writes each parsed integer through opts->name##s[i++], where the backing arrays p_srates[] and c_srates[] are declared with UAC_MAX_RATES (10) int entries. Because the store path never rejects input containing more than ten tokens, an eleventh token indexes past the end of the array, producing an out-of-bounds write into adjacent members of the enclosing f_uac1_opts/f_uac2_opts structure - confirmed by UBSAN array-index-out-of-bounds reports at drivers/usb/gadget/function/f_uac1.c:1669 and f_uac2.c:2087 ("index 10 is out of range for type 'int [10]'") via configfs_write_iter -> vfs_write -> ksys_write. The defect class is an improper input-validation / out-of-bounds write (no CWE was supplied in the source data), and the fix adds a token-count check that stops parsing once UAC_MAX_RATES entries have been stored. A second, related flaw is corrected in the same patch: the code kept the strsep()-advanced cursor rather than the original kstrdup() pointer for kfree(), which leaks the original buffer on successful parses and can free an interior pointer on some error paths. Reachability requires the UAC1/UAC2 gadget functions to be compiled and a gadget to be configured through a mounted ConfigFS, which normally means root/privileged local access (assessed vector PR:H).

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 5.1 MEDIUM

Local configfs gadget management requires root/privileged access (PR:H); overflow is a bounded adjacent-struct write with no disclosure (C:N), limited integrity impact (I:L), crash-primary (A:H).

3.1 AV:L/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:H
4.0 AV:L/AC:L/AT:N/PR:H/UI:N/VC:N/VI:L/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 18, 2026 - 18:22 NVD
7.8 (HIGH)
Patch available
Sep 17, 2026 - 17:19 EUVD
CVE Published
Sep 17, 2026 - 16:11 cve.org
UNKNOWN (no severity yet)
CVE Published
Sep 17, 2026 - 16:11 cve.org
HIGH 7.8

DescriptionCVE.org

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

usb: gadget: uac: validate rate list length before storing

UAC1 and UAC2 configfs rate-list attributes parse a comma-separated list of sampling rates and store each parsed value in fixed-size arrays. The arrays have UAC_MAX_RATES entries, but the store paths do not check that the input contains at most that many tokens before writing through opts->name##s[i++].

Writing more than ten rates therefore writes past the end of the p_srates[] or c_srates[] array in struct f_uac1_opts or struct f_uac2_opts.

With CONFIG_UBSAN_BOUNDS enabled, writing an 11-entry rate list to the UAC1 p_srate attribute reports:

UBSAN: array-index-out-of-bounds drivers/usb/gadget/function/f_uac1.c:1669:1 index 10 is out of range for type 'int [10]' __ubsan_handle_out_of_bounds.cold f_uac1_opts_p_srate_store configfs_write_iter vfs_write ksys_write do_syscall_64

The same reproducer against the UAC2 p_srate attribute reports:

UBSAN: array-index-out-of-bounds drivers/usb/gadget/function/f_uac2.c:2087:1 index 10 is out of range for type 'int [10]' __ubsan_handle_out_of_bounds.cold f_uac2_opts_p_srate_store configfs_write_iter vfs_write ksys_write do_syscall_64

Reject additional tokens once UAC_MAX_RATES entries have been parsed. Also keep the original kstrdup() pointer for kfree(), because strsep() advances the parsing cursor. Freeing the advanced cursor leaks the original buffer on successful parses and can free an interior pointer on some error paths.

Executive ViewAI

Why It Matters

The Linux kernel's USB gadget ConfigFS interface contains a high-severity vulnerability (CVE-2026-93122) that can be triggered by a privileged local user to cause adjacent memory corruption and likely system crashes, impacting availability. While exploitation requires local privileged access and no public exploit has been identified, organizations with multi-user Linux systems or those relying on USB gadget functionality should prioritize patching to prevent potential denial-of-service and integrity issues.

Business Impact: Medium
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 90% exploitable
Prevalence
Low
Linux ubiquitous but USB gadget UAC audio configfs is a niche embedded/device-mode feature
Data Quality
5 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

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