CVE-2023-35828 Overview
CVE-2023-35828 is a use-after-free vulnerability in the Linux kernel before version 6.3.2. The flaw resides in the renesas_usb3_remove function in drivers/usb/gadget/udc/renesas_usb3.c, which handles removal of the Renesas USB3 gadget controller driver. A local attacker with low privileges can trigger the use-after-free condition during driver removal, potentially leading to kernel memory corruption. The vulnerability is classified under [CWE-362] (Concurrent Execution using Shared Resource with Improper Synchronization, also known as a Race Condition). NetApp HCI compute and storage node products that ship the affected kernel are also impacted.
Critical Impact
Successful exploitation can lead to kernel memory corruption, enabling local privilege escalation, denial of service, or disclosure of sensitive kernel memory contents.
Affected Products
- Linux Kernel versions prior to 6.3.2
- NetApp H300S, H410C, H410S, H500S, H700S HCI compute and storage nodes
- Debian LTS distributions shipping affected kernel packages
Discovery Timeline
- 2023-06-18 - CVE-2023-35828 published to NVD
- 2023-08-03 - NetApp publishes security advisory ntap-20230803-0002
- 2024-11-21 - Last updated in NVD database
Technical Details for CVE-2023-35828
Vulnerability Analysis
The vulnerability exists in the Renesas USB3 USB Device Controller (UDC) gadget driver. Specifically, renesas_usb3_remove freed driver resources in an unsafe order during module unload or device removal. The function released memory or unregistered structures while other code paths could still hold references to those objects. This creates a window where freed memory can be accessed by a concurrent operation.
The issue is categorized as a race condition under [CWE-362]. Exploitation typically requires local access to a system with the affected driver loaded and the ability to trigger driver removal or hot-unplug events. Successful triggering corrupts kernel heap state and may be leveraged for privilege escalation.
Root Cause
The root cause is improper ordering of cleanup operations in renesas_usb3_remove. The fix, committed upstream as 2b947f8769be8b8181dc795fd292d3e7120f5204, restructures the removal path so that pending work and references are quiesced before backing memory is released. See the Linux Commit 2b947f8769be for the upstream patch.
Attack Vector
The attack vector is local with high attack complexity. An attacker needs low-privileged code execution on the target host and must race the driver removal sequence to access dangling references before reallocation. No user interaction is required. Successful exploitation can compromise kernel confidentiality, integrity, and availability. Public proof-of-concept code has not been published, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog.
No verified exploitation code is publicly available. Refer to the Kernel Mailing List Discussion for technical analysis of the flaw.
Detection Methods for CVE-2023-35828
Indicators of Compromise
- Unexpected kernel oops or panic messages referencing renesas_usb3 in dmesg or /var/log/kern.log
- KASAN (Kernel Address Sanitizer) reports flagging use-after-free in drivers/usb/gadget/udc/renesas_usb3.c
- Repeated module load and unload events for renesas_usb3 from non-administrative contexts
Detection Strategies
- Inventory kernel versions across Linux hosts and flag systems running kernels prior to 6.3.2 that load the renesas_usb3 module
- Audit udev and kernel logs for abnormal USB gadget controller bind, unbind, and remove sequences
- Monitor for unprivileged invocations of rmmod, modprobe -r, or writes to /sys/bus/.../unbind targeting the renesas_usb3 driver
Monitoring Recommendations
- Enable kernel auditd rules for module operations and capture associated user, PID, and command-line metadata
- Forward kernel ring buffer events to a centralized logging platform for correlation across hosts
- Alert on repeated kernel crash signatures matching USB gadget subsystem code paths
How to Mitigate CVE-2023-35828
Immediate Actions Required
- Upgrade the Linux kernel to version 6.3.2 or later, or apply the distribution-provided backport patch
- Apply the NetApp security advisory updates for H300S, H410C, H410S, H500S, and H700S nodes per NetApp Security Advisory ntap-20230803-0002
- Restrict local shell access and module loading capabilities on systems where the renesas_usb3 driver is present
Patch Information
The upstream fix is included in Linux kernel 6.3.2 and later. Refer to the Linux Kernel ChangeLog 6.3.2 and commit 2b947f8769be8b8181dc795fd292d3e7120f5204. Debian users should apply updates referenced in the Debian LTS Announcement 2023-07.
Workarounds
- Blacklist the renesas_usb3 module on systems that do not require Renesas USB3 gadget functionality
- Remove the CAP_SYS_MODULE capability from non-administrative users and disable unprivileged user namespaces where feasible
- Restrict physical and logical access to USB gadget controller interfaces on affected hardware
# Blacklist the vulnerable renesas_usb3 driver
echo "blacklist renesas_usb3" | sudo tee /etc/modprobe.d/blacklist-renesas-usb3.conf
sudo update-initramfs -u
# Verify the module is not currently loaded
lsmod | grep renesas_usb3
# Confirm kernel version is patched (>= 6.3.2)
uname -r
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

