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

CVE-2025-24797

CVE-2025-24797 Remote Code Execution in Meshtastic
📅 PUBLISHED: 2025-04-14 23:25 UTC 🔄 UPDATED: 2026-10-09 05:41 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.88%
👁️
0.88% probability
22.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: Global License: Open Source
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
9.4
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-24797 is a critical, unauthenticated, remote code execution (RCE) vulnerability affecting Meshtastic, an open-source mesh networking solution. The flaw resides in the firmware's handling of mesh packets containing invalid protobuf data. An attacker can trigger a buffer overflow by sending a specially crafted packet to a target device that rebroadcasts packets on the default channel. This attack requires no authentication or user interaction, making it highly dangerous for unpatched Meshtastic nodes. The vulnerability has been assigned a CVSS score of 9.4 (Critical) and is fixed in version 2.6.2.

⚡ 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 is not related to a package manager (NPM, PyPI, Go, Ruby) but is a firmware-level issue in the Meshtastic embedded software. The supply chain risk is limited to the firmware update process; users must ensure they download the patched firmware from the official Meshtastic GitHub repository or trusted distribution channels.

CVSS Breakdown & Threat Level

  • CVSS Score: 9.4 (Critical)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Attack Vector (AV): Network - The vulnerability can be exploited over the mesh network.
  • Attack Complexity (AC): Low - No special conditions are required.
  • Privileges Required (PR): None - No authentication needed.
  • User Interaction (UI): None - No user action required.
  • Scope (S): Unchanged - The exploit does not affect other components.
  • Confidentiality (C): High - Full data compromise possible.
  • Integrity (I): High - Full control over device behavior.
  • Availability (A): High - Potential for denial of service or full takeover.

Threat Level: Critical. The vulnerability allows remote, unauthenticated code execution on any Meshtastic node that rebroadcasts packets on the default channel. This can lead to complete device compromise, lateral movement within the mesh network, and potential disruption of communications.

Deep Dive & Mechanics

The vulnerability is a classic stack-based buffer overflow (CWE-121) in the Meshtastic firmware's protobuf parsing logic. Meshtastic uses Protocol Buffers (protobuf) for serializing mesh packets. The flaw occurs when the firmware processes a mesh packet containing a protobuf message with an invalid or oversized field. The parser does not properly validate the length of the data before copying it into a fixed-size stack buffer, leading to a buffer overflow.

Attack Flow:

  1. An attacker crafts a malicious mesh packet with a protobuf message that contains a field with a length value exceeding the expected buffer size.
  2. The attacker transmits this packet over the mesh network on the default channel.
  3. Any Meshtastic node that receives and rebroadcasts the packet will attempt to parse the malformed protobuf data.
  4. During parsing, the firmware copies the oversized field into a stack buffer without bounds checking, overwriting adjacent memory.
  5. The attacker can control the overflow data to overwrite the return address or function pointers, hijacking execution flow.
  6. This allows the attacker to execute arbitrary code on the target device with the privileges of the firmware process.

Key Technical Details:

  • The vulnerability is triggered during the deserialization of protobuf messages, specifically in the handling of bytes or string fields.
  • The overflow occurs in a function that processes incoming mesh packets before they are validated or authenticated.
  • The default channel is used for broadcast, meaning any node in range can be targeted without prior pairing.

Vulnerable vs. Patched Code

Vulnerable Code (Pre-2.6.2): The vulnerable code likely resides in the protobuf parsing library or the mesh packet handler. A simplified example of the vulnerable pattern:

void process_mesh_packet(uint8_t *data, size_t len) {
    char buffer[256];
    // Vulnerable: no length check before memcpy
    memcpy(buffer, data, len);
    // ... further processing
}

Patched Code (2.6.2): The patch adds proper bounds checking before copying data:

void process_mesh_packet(uint8_t *data, size_t len) {
    char buffer[256];
    if (len > sizeof(buffer)) {
        // Handle error or discard packet
        return;
    }
    memcpy(buffer, data, len);
    // ... further processing
}

The actual fix may involve more comprehensive validation of protobuf field lengths and the use of safe functions like strncpy or memcpy_s.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Two Meshtastic devices (e.g., ESP32-based nodes) running firmware < 2.6.2.
  • A computer with a serial connection to one device for debugging.
  • Python with meshtastic library and protobuf installed.

Lab Setup:

  1. Flash two Meshtastic nodes with vulnerable firmware (e.g., version 2.5.x).
  2. Configure both nodes to use the default channel.
  3. Connect one node to your computer via USB for serial monitoring.

Exploitation Steps:

  1. Identify the target node's mesh address (can be obtained via broadcast).
  2. Craft a malicious protobuf packet with an oversized field. Example using Python:
import meshtastic.protobuf.mesh_pb2 as mesh_pb2
from meshtastic import mesh_interface
import struct

# Create a malformed protobuf message
packet = mesh_pb2.MeshPacket()
packet.payload = b'A' * 300  # Oversized payload to trigger overflow

# Serialize and send
data = packet.SerializeToString()
# Send via mesh interface (simplified)
mesh_interface.send_data(data, destination_id=target_id)
  1. Monitor the target device's serial output for crashes or unexpected behavior.
  2. If the device crashes, analyze the crash dump to determine the offset for overwriting the return address.
  3. Develop a ROP chain or shellcode to execute arbitrary commands (e.g., exfiltrate data, join a botnet).

Note: No public exploit code is available at this time. The above is a conceptual approach.

Blue Team (Defense)

Detection:

  • Monitor for malformed protobuf packets on the mesh network.
  • Use intrusion detection systems (IDS) that can parse Meshtastic protocol.
  • Enable firmware integrity checks and secure boot if supported.

Mitigation:

  • Immediately update all Meshtastic nodes to firmware version 2.6.2 or later.
  • If patching is not possible, isolate vulnerable nodes from the mesh network.
  • Implement network segmentation to limit the blast radius.
  • Monitor for unusual device behavior, such as unexpected reboots or crashes.

Hunting:

  • Search for devices running firmware versions < 2.6.2 using Shodan dorks.
  • Analyze network traffic for packets with abnormally large payloads.
  • Review device logs for stack overflow errors or memory corruption warnings.

Indicators of Compromise (IOCs)

  • Network IOCs:
    • Mesh packets with protobuf payloads exceeding 256 bytes.
    • Packets with invalid protobuf field lengths (e.g., length > 65535).
    • Repeated crash reports from Meshtastic nodes.
  • Host IOCs:
    • Firmware version < 2.6.2.
    • Unexpected device reboots or watchdog resets.
    • Serial output showing stack traces or memory corruption errors.
  • File IOCs:
    • Modified firmware binaries with unknown hashes.
    • Presence of suspicious scripts or binaries on compromised nodes (if RCE achieved).

Detection Engineering

YARA Rule

rule CVE_2025_24797_Meshtastic_Protobuf_Overflow {
    meta:
        description = "Detects malformed protobuf packets targeting CVE-2025-24797"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-24797"
    strings:
        $protobuf_marker = { 0A ?? ?? ?? ?? }  // Protobuf field tag for bytes
        $large_length = { (?? 80 80 80 80 01) | (?? FF FF FF FF 0F) }  // Varint > 256
    condition:
        $protobuf_marker and $large_length
}

Sigma Rule

title: CVE-2025-24797 Meshtastic Malformed Protobuf Packet
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects network packets with oversized protobuf payloads targeting Meshtastic devices
author: Valters IT
date: 2025-04-10
logsource:
    category: network_flow
    product: meshtastic
detection:
    selection:
        payload_length: >256
        protocol: meshtastic
    condition: selection
falsepositives:
    - Legitimate large firmware updates (rare)
level: critical

Suricata Rule

alert tcp any any -> any 4403 (msg:"CVE-2025-24797 Meshtastic Protobuf Buffer Overflow Attempt"; flow:to_server; content:"|0A|"; depth:1; content:"|FF FF FF FF 0F|"; distance:1; within:5; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Update all Meshtastic nodes to firmware version 2.6.2 or later.
  2. If patching is delayed, disable the default channel or restrict mesh communication to trusted nodes only.
  3. Monitor network traffic for anomalous protobuf packets.

Long-Term Measures:

  • Implement input validation and bounds checking in all protobuf parsing routines.
  • Use memory-safe languages or compiler protections (e.g., stack canaries, ASLR) where possible.
  • Conduct regular security audits of the firmware codebase.
  • Establish a vulnerability disclosure program.

Workarounds:

  • For devices that cannot be updated, consider using a firewall to filter mesh traffic.
  • Use encrypted channels to reduce the attack surface.

Valters IT

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