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

CVE-2025-49604

CVE-2025-49604 Heap Buffer Overflow in Realtek
📅 PUBLISHED: 2025-07-09 00:00 UTC 🔄 UPDATED: 2026-09-23 20:39 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.33%
👁️
0.33% probability
8.3× 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-2025-49604 is a critical heap-based buffer overflow vulnerability in the WLAN driver defragment function of Realtek AmebaD IoT devices. The flaw resides in the Ameba-AIoT firmware (both ameba-arduino-d and ameba-rtos-d) and allows an unauthenticated, adjacent attacker to trigger memory corruption by sending specially crafted fragmented Wi-Fi frames. The vulnerability stems from a lack of validation of the size of fragmented Wi-Fi frames before copying data into a heap buffer. Successful exploitation could lead to remote code execution (RCE) or denial of service (DoS) on affected IoT devices, potentially compromising smart home, industrial, or edge computing deployments.

⚡ 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

This vulnerability affects Realtek’s AmebaD IoT SDK, which is distributed as part of the Arduino ecosystem (ameba-arduino-d) and the Realtek RTOS SDK (ameba-rtos-d). The supply chain risk is significant because these SDKs are used by OEMs and developers to build firmware for millions of IoT devices. A patch is available in version 3.1.9 of the Arduino SDK and a specific commit in the RTOS SDK. Organizations must verify that their device firmware is updated to these patched versions.

CVSS Breakdown & Threat Level

The CVSS score is currently listed as 0.0, likely due to incomplete NVD analysis. Based on the vulnerability characteristics, a realistic CVSS v3.1 vector would be:

CVSS Vector: CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Base Score: 8.8 (High)

  • Attack Vector (AV): Adjacent Network – The attacker must be within Wi-Fi range.
  • Attack Complexity (AC): Low – No special conditions required.
  • Privileges Required (PR): None – No authentication needed.
  • User Interaction (UI): None – No user action required.
  • Scope (S): Unchanged – The exploit affects only the vulnerable component.
  • Confidentiality (C): High – Potential for data exfiltration.
  • Integrity (I): High – Potential for code execution.
  • Availability (A): High – Potential for device crash or DoS.

Threat Level: High. The vulnerability is remotely exploitable over Wi-Fi without authentication, making it a prime target for wormable attacks in IoT environments.

Deep Dive & Mechanics

The vulnerability exists in the WLAN driver’s defragmentation routine. When the device receives fragmented 802.11 frames, the driver reassembles them by copying payload data into a heap buffer. The flaw is a missing size check: the driver does not verify that the total size of the reassembled frame fits within the allocated heap buffer before copying. An attacker can send a sequence of fragmented frames where the cumulative payload size exceeds the buffer capacity, causing a heap-based buffer overflow.

Technical Flow:

  1. The attacker sends multiple 802.11 fragmented frames to the target device.
  2. The WLAN driver’s defragment function allocates a heap buffer based on the first fragment’s size.
  3. Subsequent fragments are copied into this buffer without validating that the total data fits.
  4. When the total payload exceeds the buffer size, data overflows into adjacent heap memory.
  5. This can corrupt heap metadata or overwrite function pointers, leading to code execution.

Impact: Successful exploitation allows an attacker to execute arbitrary code in the context of the WLAN driver, which typically runs with high privileges on the IoT device. This can lead to full device compromise, lateral movement within the network, or use of the device in a botnet.

Vulnerable vs. Patched Code

The vulnerable code is in the WLAN defragment function. The patched version adds a size validation check before copying fragment data.

Vulnerable Code (pseudo):

void wlan_defrag(struct sk_buff *skb) {
    struct frag_queue *fq = get_frag_queue(skb);
    int frag_size = skb->len;
    char *buf = kmalloc(frag_size, GFP_KERNEL);
    // No size check on cumulative fragments
    memcpy(buf + fq->offset, skb->data, frag_size);
    fq->offset += frag_size;
    if (fq->offset == fq->total_size) {
        process_reassembled(buf);
    }
}

Patched Code (pseudo):

void wlan_defrag(struct sk_buff *skb) {
    struct frag_queue *fq = get_frag_queue(skb);
    int frag_size = skb->len;
    // Validate that the new fragment does not exceed the buffer
    if (fq->offset + frag_size > fq->buf_size) {
        // Drop the fragment and free resources
        kfree(fq->buf);
        return;
    }
    char *buf = fq->buf; // Buffer already allocated
    memcpy(buf + fq->offset, skb->data, frag_size);
    fq->offset += frag_size;
    if (fq->offset == fq->total_size) {
        process_reassembled(buf);
    }
}

The patch ensures that the cumulative offset plus the new fragment size does not exceed the allocated buffer size, preventing the overflow.

Exploitation & Lab Setup

Red Team (Exploitation)

Lab Setup:

  • Target: Realtek AmebaD device (e.g., RTL8720DN) running vulnerable firmware (ameba-arduino-d < 3.1.9).
  • Attacker: Linux machine with a Wi-Fi adapter supporting monitor mode and packet injection (e.g., Alfa AWUS036ACH).
  • Tools: aircrack-ng, scapy, custom Python script.

Exploitation Steps:

  1. Identify Target: Use airodump-ng to find the target device’s BSSID.
  2. Craft Fragmented Frames: Use scapy to create 802.11 data frames with the MF (More Fragments) bit set. The first fragment should have a small payload, and subsequent fragments should have payloads that cumulatively exceed the buffer size.
  3. Inject Frames: Send the crafted frames using aireplay-ng or a custom scapy script.
  4. Trigger Overflow: The device will attempt to reassemble the fragments, causing a heap overflow. If the overflow overwrites a function pointer, the attacker can redirect execution to shellcode.

Example Scapy Script (Conceptual):

from scapy.all import *
import time

target_bssid = "00:11:22:33:44:55"
target_sta = "66:77:88:99:aa:bb"
iface = "wlan0mon"

# First fragment (small)
frag1 = RadioTap() / Dot11(addr1=target_sta, addr2=target_bssid, addr3=target_bssid) / Dot11QoS() / LLC() / SNAP() / Raw(load="A"*100)
frag1[Dot11].SC = 0x1000  # Sequence control with MF bit
frag1[Dot11].FCfield |= 0x04  # More Fragments

# Second fragment (large to overflow)
frag2 = RadioTap() / Dot11(addr1=target_sta, addr2=target_bssid, addr3=target_bssid) / Dot11QoS() / LLC() / SNAP() / Raw(load="B"*500)
frag2[Dot11].SC = 0x1001  # Sequence control, last fragment

sendp(frag1, iface=iface, count=1, inter=0.1)
time.sleep(0.1)
sendp(frag2, iface=iface, count=1, inter=0.1)

Note: This is a conceptual example. Actual exploitation requires knowledge of the target’s heap layout and may involve ROP chains.

Blue Team (Defense)

Detection:

  • Monitor for unusual fragmented Wi-Fi frames with abnormal sizes.
  • Use WIDS/WIPS to detect anomalous 802.11 fragmentation patterns.
  • Enable logging on the device to capture heap corruption events.

Mitigation:

  • Apply the patch immediately (update to ameba-arduino-d 3.1.9 or apply the RTOS commit).
  • Segment IoT devices on a separate VLAN to limit lateral movement.
  • Disable Wi-Fi fragmentation if not required (though this may break compatibility).

Indicators of Compromise (IOCs)

  • Network IOCs:

    • Unusually large fragmented 802.11 frames (e.g., cumulative payload > 1500 bytes).
    • High rate of fragmented frames from a single source.
    • Frames with invalid fragment offsets or sizes.
  • Host IOCs:

    • Device crashes or unexpected reboots.
    • Heap corruption logs in system logs (if available).
    • Unusual memory usage or process crashes.
  • File IOCs:

    • Modified firmware binaries (if attacker gains persistence).

Detection Engineering

YARA Rule

rule CVE_2025_49604_WLAN_Defrag_Overflow {
    meta:
        description = "Detects heap buffer overflow in Realtek AmebaD WLAN defragment function"
        author = "Valters IT"
        date = "2025-07-15"
        cve = "CVE-2025-49604"
    strings:
        $code1 = { 48 8B 45 ?? 48 03 45 ?? 48 3B 45 ?? 76 ?? }  // offset + frag_size > buf_size check (patched)
        $code2 = { 48 8B 45 ?? 48 03 45 ?? 48 89 45 ?? }        // vulnerable: no check
    condition:
        $code2 and not $code1
}

Sigma Rule

title: CVE-2025-49604 - Heap Overflow in Realtek AmebaD WLAN Defrag
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects exploitation attempts of CVE-2025-49604 via anomalous 802.11 fragmented frames
author: Valters IT
date: 2025/07/15
logsource:
    category: network
    product: wlan
detection:
    selection:
        frame.type: "Data"
        frame.fragmented: true
        frame.fragment_offset: 0
        frame.fragment_more: true
    condition: selection
    timeframe: 5m
    aggregation:
        count: 10
        field: source.mac
falsepositives:
    - Legitimate fragmented frames from normal Wi-Fi traffic
level: high

Suricata Rule

alert wlan any any -> any any (msg:"CVE-2025-49604 - Heap Overflow in Realtek AmebaD WLAN Defrag"; flow:to_client; wlan.frag; content:"|00 04|"; offset:0; depth:2; threshold:type both, track by_src, count 10, seconds 300; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate Patch: Update to ameba-arduino-d version 3.1.9 or apply the commit c2bfd8216a1cbc19ad2ab5f48f372ecea756d67a in ameba-rtos-d.
  2. Network Segmentation: Place IoT devices on a separate VLAN with strict firewall rules.
  3. Disable Fragmentation: If possible, disable 802.11 fragmentation on the device (may affect performance).
  4. Monitor: Deploy WIDS/WIPS to detect anomalous fragmentation patterns.
  5. Firmware Signing: Ensure only signed firmware can be flashed to prevent backdoor installation.

Valters IT
DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-49604/ · 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.