Skip to main content

RT-Thread CVE-2026-108952

| EUVDEUVD-2026-97359 MEDIUM
Access of Resource Using Incompatible Type (Type Confusion) (CWE-843)
2026-10-12 VulnCheck GHSA-x4hq-c3c6-m368
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Connect malicious USB host to device
  2. Delivery
    Host configures CDC virtual COM device
  3. Exploit
    Driver aliases ring buffer as Serial V2 FIFO
  4. Execution
    Write past ring buffer corrupts vcom struct
  5. Impact
    Invalid rt_free() on close crashes device (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Type safety enforcement
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires physical USB connectivity: the attacker must connect a USB host to an RT-Thread device operating as a USB CDC virtual COM (vcom) gadget using the LEGACY USB device stack (components/legacy/usb/usbdevice/class/cdc_vcom.c). The defect is specifically triggered when RT_USING_SERIAL_V2 is enabled, because _function_enable() aliases rx_ringbuffer as a Serial V2 rt_serial_rx_fifo; the overflow then occurs during host-driven CDC configuration and the invalid rt_free() occurs on port close. Limiting factors: physical access is mandatory (AV:P), the legacy USB CDC vcom class and Serial V2 build configuration must both be present, and impact is confined to denial of service - no code execution, data disclosure, or integrity compromise.

Impact

This is a medium-severity, low-operational-priority issue for most environments. The vendor-supplied CVSS 4.0 vector (AV:P/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H, base 5.1) is internally consistent with the description: exploitation requires PHYSICAL attack access (AV:P) because an attacker must connect a USB host to the RT-Thread device acting as a USB CDC gadget, and the only impact is availability (VA:H) - a crash/denial of service via type confusion (CWE-843), with no confidentiality or integrity loss (VC:N/VI:N). No EPSS score was provided in the input, so exploitation-probability cannot be weighed; no CISA KEV listing and no public POC were supplied, so there is no public exploit identified at time of analysis. The signals do not conflict: a physical-access, DoS-only RTOS driver bug is genuinely a lower real-world priority than its CWE class might suggest, and the absence of EPSS/KEV/POC reinforces that this is not an actively weaponized, widespread threat. It matters most in deployments where untrusted USB hosts can physically connect to an RT-Thread device running the legacy USB CDC vcom driver with Serial V2 enabled.

Exploit ScenarioDerived

An attacker with physical access connects a malicious or specially-configured USB host to an embedded device running RT-Thread's legacy USB CDC virtual COM driver. During CDC device configuration/enumeration, the driver treats the rx_ringbuffer as a Serial V2 rt_serial_rx_fifo, causing writes past the ring buffer into adjacent struct vcom members and an invalid rt_free() on close, crashing the device. No public exploit code was identified in the provided data, and the physical attack vector (AV:P) limits this to hands-on access to the target.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.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 – Oct 12, 2026

Memory corruption in the legacy USB CDC virtual COM (vcom) driver shipped in RT-Thread through 5.3.0 lets a physically connected USB host trigger writes past the serial ring buffer and, on port close, an invalid rt_free(), causing denial of service on the affected device. Only builds that include components/legacy/usb/usbdevice/class/cdc_vcom.c and enable RT_USING_SERIAL_V2 are exposed; exploitation requires physical USB access (CVSS 3.1 AV:P, PR:N), and impact is limited to availability with no code execution, data disclosure, or integrity loss. No public exploit code has been identified at time of analysis and the issue is not listed as actively exploited, so this is a medium-severity, low-operational-priority item for most environments; an upstream fix exists (PR #11770 / commit ceef6e0c).

RemediationAI

Upstream fix available (PR/commit); released patched version not independently confirmed: apply commit ceef6e0ccd646aef61b907aeb9f29269d1caba50 (PR https://github.com/RT-Thread/rt-thread/pull/11770), which drops the serial_rx aliasing in _function_enable() and routes CDC receive data through the Serial V2 fifo only when config.rx_bufsz is non-zero, otherwise using the legacy embedded rx_ringbuffer, then rebuild firmware. If that update cannot be shipped immediately, two compensating controls are practical: build the BSP without RT_USING_SERIAL_V2 so the aliasing branch at cdc_vcom.c is compiled out and the legacy ring buffer path is used (trade-off: loses Serial V2 features and must be validated against other serial-dependent components), or exclude the legacy USB CDC vcom class from the build so the device no longer exposes a virtual COM gadget (trade-off: removes USB serial console/COM functionality entirely). Because the vector is physical (AV:P), additionally restrict physical USB port access to trusted hosts or disable USB device-mode CDC exposure in deployed units until the patch is applied; note that this does not protect field devices with accessible USB ports. Track the vendor issue at https://github.com/RT-Thread/rt-thread/issues/11739 and the advisory at https://www.vulncheck.com/advisories/rt-thread-through-5.3.0-memory-corruption-via-usb-cdc-vcom-driver for a tagged release containing the fix, and treat the vulnerability as denial-of-service only when triaging.

Affected VersionsENISA

RT-Thread 0 ≤5.3.0

Affected Packages

euvd rt_thread 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 root cause is a type confusion (CWE-843) in RT-Thread's legacy USB device stack. In _function_enable() of components/legacy/usb/usbdevice/class/cdc_vcom.c, the driver aliases its embedded ring buffer to the Serial V2 receive object by assigning data->serial.serial_rx = &data->rx_ringbuffer. Under RT_USING_SERIAL_V2 the serial framework expects serial_rx to reference a struct rt_serial_rx_fifo (whose first member is an rt_ringbuffer, followed by additional fifo bookkeeping fields), so code paths that treat serial_rx as an rt_serial_rx_fifo operate on a much smaller object than expected. When a connected USB host configures the CDC device, host-driven receive handling writes through the mis-typed pointer past the end of the ring buffer into adjacent struct vcom members, and the teardown path later issues an rt_free() against memory that was never heap-allocated in that form. The upstream patch referenced by this CVE removes the aliasing, introduces a notify_rx/RX-indication split, and updates both the EP-OUT handler and _vcom_getc() so that data is placed in the Serial V2 fifo only when data->serial.config.rx_bufsz != 0 and otherwise falls back to the legacy embedded rx_ringbuffer, eliminating the out-of-bounds writes and the invalid free.

Know when Rt Thread gets its next vulnerability

  • 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 (VulnCheck) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 4.6 MEDIUM

USB host must be physically connected (AV:P) and no credentials are needed (PR:N/UI:N); impact is a crash only, so C:N/I:N/A:H.

3.1 AV:P/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:P/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Physical
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

RT-Thread through 5.3.0 contains a memory corruption vulnerability in the legacy USB CDC virtual COM port driver that aliases rx_ringbuffer as a Serial V2 rt_serial_rx_fifo in _function_enable(). A connected USB host configuring the CDC device triggers writes past the ring buffer into struct vcom members and an invalid rt_free() on close, causing denial of service.

Threat Intelligence Overview

EPSS Score
0.2%
Top 91% exploitable
Prevalence
Medium
popular embedded/IoT RTOS, but legacy USB driver and non-default config
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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
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.

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2025-5865 HIGH POC
8.0 Jun 09

Critical memory corruption vulnerability in RT-Thread 5.1.0's sys_select syscall handler that allows authenticated local

CVE-2025-5867 HIGH POC
8.0 Jun 09

Critical null pointer dereference vulnerability in RT-Thread 5.1.0's lwp_syscall.c csys_sendto function, allowing authen

CVE-2025-5869 HIGH POC
8.0 Jun 09

Critical memory corruption vulnerability in RT-Thread 5.1.0's sys_recvfrom syscall handler that allows authenticated loc

CVE-2025-5866 HIGH POC
8.0 Jun 09

A security vulnerability in A vulnerability classified as critical (CVSS 8.0). Risk factors: public PoC available.

CVE-2025-5868 HIGH POC
8.0 Jun 09

Critical array index validation vulnerability in RT-Thread 5.1.0's signal mask syscall handler that allows authenticated

CVE-2025-6693 HIGH POC
7.8 Jun 26

A vulnerability, which was classified as critical, was found in RT-Thread up to 5.1.0. This affects the function sys_dev

CVE-2026-14606 HIGH POC
7.1 Jul 03

Stack-based buffer overflow in RT-Thread RTOS (versions up to and including 5.0.2) affects the CAN_Receive function with

CVE-2026-14605 HIGH POC
7.1 Jul 03

Stack-based buffer overflow in RT-Thread RTOS (versions up to and including 5.0.2) affects the recvmsg function within t

CVE-2024-25393 CRITICAL
9.8 Mar 27

A stack buffer overflow occurs in net/at/src/at_server.c in RT-Thread through 5.0.2. Rated critical severity (CVSS 9.8),

CVE-2026-14607 MEDIUM POC
5.4 Jul 03

Memory corruption in RT-Thread's Linux-compatible process (lwp) syscall layer allows a local low-privileged user to cras

CVE-2025-1115 MEDIUM POC
4.8 Feb 08

A vulnerability classified as problematic was found in RT-Thread up to 5.1.0. Rated medium severity (CVSS 4.8), this vul

CVE-2024-25395 HIGH
8.8 Mar 27

A buffer overflow occurs in utilities/rt-link/src/rtlink.c in RT-Thread through 5.0.2. Rated high severity (CVSS 8.8), t

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