☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2024-25388

CVE-2024-25388 Buffer Overflow in Rt-thread
📅 PUBLISHED: 2024-03-27 00:00 UTC 🔄 UPDATED: 2026-09-23 20:38 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.32%
👁️
0.32% probability
8.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-25388 is a critical memory corruption vulnerability in the RT-Thread real-time operating system, specifically within the drivers/wlan/wlan_mgmt.c file. The flaw is an integer signedness error that leads to a buffer overflow when processing WLAN management frames. An attacker can exploit this by sending a specially crafted wireless frame, potentially causing a denial of service (DoS) or arbitrary code execution on the target device. The vulnerability affects RT-Thread versions up to and including 5.0.2, and no official patch has been released at the time of analysis.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

RT-Thread is a widely used open-source RTOS in IoT and embedded systems. This vulnerability impacts the core WLAN management stack, which is often compiled into firmware images. Supply chain risk is elevated as devices using RT-Thread may be deployed in critical infrastructure, smart home, or industrial control environments. No package manager (NPM, PyPI, Go, Ruby) is involved, but the vulnerability is embedded in the source code distribution.

CVSS Breakdown & Threat Level

The CVSS score is listed as 0.0, indicating insufficient data for scoring. However, based on the vulnerability type (buffer overflow from signedness error), a reasonable assessment is:

  • Attack Vector (AV): Adjacent Network (A) – requires proximity to the wireless network.
  • Attack Complexity (AC): Low (L) – standard wireless frames can be crafted.
  • Privileges Required (PR): None (N) – no authentication needed.
  • User Interaction (UI): None (N) – no user action required.
  • Scope (S): Unchanged (U) – vulnerability affects the same component.
  • Confidentiality (C): High (H) – potential for memory read.
  • Integrity (I): High (H) – potential for memory write.
  • Availability (A): High (H) – buffer overflow can crash the system.

Estimated CVSS v3.1 Score: 8.8 (High)

Threat Level: High – due to the potential for remote code execution in a wireless context.

Deep Dive & Mechanics

The vulnerability resides in drivers/wlan/wlan_mgmt.c in the function responsible for parsing WLAN management frames. The issue is an integer signedness error: a length field in the frame is interpreted as a signed integer, but used in a memory copy operation that expects an unsigned value. When a negative value is provided, it bypasses size checks, leading to a buffer overflow.

Root Cause:

  • The code reads a length field from the incoming frame as a signed int.
  • This value is then used in a memcpy or similar operation without proper validation.
  • If an attacker sends a frame with a negative length (e.g., 0xFFFF interpreted as -1), the signed comparison may pass, but the unsigned copy will treat it as a large positive number, overflowing the destination buffer.

Impact:

  • Denial of Service (DoS) by crashing the WLAN stack.
  • Potential arbitrary code execution if the overflow overwrites critical data structures or function pointers.

Vulnerable vs. Patched Code

Since no official patch is available, the vulnerable code pattern is described. A hypothetical fix would involve changing the signed integer to unsigned and adding bounds checking.

Vulnerable Code (Conceptual):

int len = (frame[offset] << 8) | frame[offset+1]; // signed int
if (len > 0) {
    memcpy(dest, src, len); // len could be negative, causing overflow
}

Patched Code (Hypothetical):

unsigned int len = (frame[offset] << 8) | frame[offset+1]; // unsigned
if (len > 0 && len < MAX_BUF_SIZE) {
    memcpy(dest, src, len);
} else {
    // handle error
}

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • A wireless adapter capable of monitor mode and packet injection (e.g., Alfa AWUS036ACH).
  • A target device running RT-Thread with WLAN enabled (e.g., an IoT board like STM32 with WiFi module).
  • Tools: aircrack-ng, scapy, or custom C code.

Exploitation Steps:

  1. Set up monitor mode: sudo airmon-ng start wlan0
  2. Capture a legitimate WLAN management frame (e.g., beacon) to understand the structure.
  3. Craft a malicious frame with a corrupted length field (e.g., set length to 0xFFFF).
  4. Inject the frame: sudo aireplay-ng -2 -p 0xFFFF -c FF:FF:FF:FF:FF:FF -b <BSSID> wlan0
  5. Monitor the target for crash or shell access.

Proof-of-Concept (Python with Scapy):

from scapy.all import *
import sys

# Craft a malicious management frame
frame = RadioTap() / Dot11(addr1="ff:ff:ff:ff:ff:ff", addr2="00:11:22:33:44:55", addr3="00:11:22:33:44:55") / Dot11ProbeReq()
# Corrupt the length field in the frame body (offset depends on implementation)
frame[Dot11ProbeReq].len = 0xFFFF  # This is a simplification; actual offset varies

sendp(frame, iface="wlan0mon", count=100)

Blue Team (Defensive)

Detection:

  • Monitor for anomalous WLAN management frames with invalid length fields.
  • Use network intrusion detection systems (NIDS) like Suricata to flag malformed frames.
  • Implement runtime bounds checking in the RT-Thread WLAN driver.

Mitigation:

  • Apply input validation on all length fields in WLAN frames.
  • Use static analysis tools to detect signedness errors.
  • If possible, disable WLAN management frame processing until a patch is available.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • WLAN management frames with length field set to 0xFFFF or other negative values.
    • Repeated probe requests or beacons from a single source with malformed headers.
  • Host IOCs:
    • Unexpected crashes or reboots of RT-Thread devices.
    • Memory corruption logs in system logs (if available).
    • Unusual behavior in the WLAN stack (e.g., disconnections, frame errors).

Detection Engineering

YARA Rule

rule CVE_2024_25388_WLAN_Overflow {
    meta:
        description = "Detects malicious WLAN frames targeting CVE-2024-25388"
        author = "Valters IT"
        date = "2025-04-10"
    strings:
        $signed_len = { FF FF } // 0xFFFF as signed -1
    condition:
        $signed_len at 0 and // Adjust offset based on frame structure
        filesize < 1500
}

Sigma Rule

title: CVE-2024-25388 WLAN Buffer Overflow Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects malformed WLAN management frames with negative length fields
author: Valters IT
logsource:
    category: network
    product: suricata
detection:
    selection:
        event_type: alert
        alert.signature_id: 202425388
    condition: selection
falsepositives:
    - Legitimate frames with unusual lengths (rare)
level: high

Suricata Rule

alert wlan any any -> any any (msg:"CVE-2024-25388 WLAN Buffer Overflow Attempt"; content:"|FF FF|"; offset:0; depth:2; sid:202425388; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable WLAN management frame processing if not required.
  2. Apply input validation on all length fields in wlan_mgmt.c – change signed integers to unsigned and add bounds checks.
  3. Monitor for updates from RT-Thread project (https://github.com/RT-Thread/rt-thread).

Long-term Fix:

  • The RT-Thread maintainers should release a patch that fixes the signedness error and adds proper bounds checking.
  • Users should update to a patched version once available.

Workaround:

  • If source code access is available, manually patch the vulnerable function as shown in the "Vulnerable vs. Patched Code" section.

Valters IT
DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-25388/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.