CVE-2024-30799
Executive Summary
CVE-2024-30799 is a critical vulnerability in the PX4 Autopilot firmware, affecting versions 1.14 and earlier. The flaw resides in the Breach Return Point function, allowing a remote, unauthenticated attacker to trigger arbitrary code execution and cause a denial of service (DoS). This vulnerability poses a severe risk to unmanned aerial vehicles (UAVs) and other autonomous systems running PX4, potentially enabling complete takeover or crash of the aircraft. No public proof-of-concept (PoC) or patch is currently available, but the high CVSS score and remote exploitability demand immediate attention.
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
CVSS Breakdown & Threat Level
- CVSS Score: 9.8 (Critical)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: High
- Integrity Impact: High
- Availability Impact: High
The vulnerability is remotely exploitable without authentication, making it a prime target for attackers. Successful exploitation leads to full system compromise and denial of service.
Deep Dive & Mechanics
The Breach Return Point function in PX4 Autopilot is responsible for handling specific flight control state transitions. A flaw in the memory management or input validation within this function allows an attacker to send a crafted network packet that corrupts the stack or heap, leading to arbitrary code execution. The exact mechanism is not publicly documented, but based on the CWE-119 classification, it likely involves a buffer overflow or improper bounds checking.
The attack surface is the MAVLink protocol, which is used for communication between the ground control station and the autopilot. An attacker on the same network can send a malicious MAVLink message that triggers the vulnerable code path.
Vulnerable vs. Patched Code
Since no patch is available, a direct comparison cannot be made. However, based on the vulnerability description, the vulnerable code likely resides in the src/modules/commander/ or src/modules/navigator/ directories. The fix would involve adding input validation and bounds checking to the Breach Return Point function.
Vulnerable Code (Conceptual):
void breach_return_point(uint8_t *data, uint16_t len) {
// No bounds check on len
memcpy(buffer, data, len);
// Process buffer...
}
Patched Code (Conceptual):
void breach_return_point(uint8_t *data, uint16_t len) {
if (len > BUFFER_SIZE) {
// Handle error
return;
}
memcpy(buffer, data, len);
// Process buffer...
}
Exploitation & Lab Setup
Red Team
Lab Setup:
- Set up a PX4 SITL (Software In The Loop) simulation environment.
- Use QGroundControl or MAVSDK to interact with the simulated autopilot.
- Craft a malicious MAVLink message targeting the Breach Return Point function.
Exploitation Steps:
- Identify the vulnerable MAVLink message ID and payload structure.
- Create a Python script using
pymavlinkto send the crafted packet. - Execute the script against the target PX4 instance.
Example Exploit Script (Conceptual):
#!/usr/bin/env python3
import pymavlink.mavutil as mavutil
# Connect to the target
master = mavutil.mavlink_connection('udp:0.0.0.0:14550')
# Craft malicious payload
payload = b'\x41' * 1024 # Overflow buffer
# Send the message (replace MSG_ID with actual vulnerable message ID)
master.mav.send(mavutil.mavlink.MAVLink_breach_return_point_message(payload))
Blue Team
Detection:
- Monitor for anomalous MAVLink messages with unusually large payloads.
- Use network intrusion detection systems (NIDS) to flag suspicious traffic.
Mitigation:
- Isolate PX4 systems on a separate VLAN.
- Implement strict firewall rules to limit MAVLink traffic to trusted sources.
- Apply input validation at the network edge.
Indicators of Compromise (IOCs)
- Network: Unusually large MAVLink packets (e.g., > 512 bytes) targeting the Breach Return Point function.
- System: Unexpected crashes or reboots of the autopilot.
- Logs: Entries indicating memory corruption or invalid state transitions in the PX4 logs.
Detection Engineering
YARA Rule
rule CVE_2024_30799_PX4_Breach_Return_Point {
meta:
description = "Detects exploitation attempts of CVE-2024-30799 in PX4 Autopilot"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-30799"
strings:
$mavlink_header = { FE 00 00 00 } // MAVLink v2 magic + length
$breach_return = "breach_return_point"
condition:
$mavlink_header at 0 and $breach_return
}
Sigma Rule
title: CVE-2024-30799 PX4 Breach Return Point Exploitation
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects network traffic targeting the PX4 Breach Return Point vulnerability
author: Valters IT
logsource:
category: network
product: suricata
detection:
selection:
- payload|contains: "breach_return_point"
- payload_length: > 512
condition: selection
falsepositives:
- Legitimate large MAVLink messages (rare)
level: critical
Suricata Rule
alert udp any any -> any 14550 (msg:"CVE-2024-30799 PX4 Breach Return Point Exploitation"; content:"|FE 00 00 00|"; depth:4; content:"breach_return_point"; within:100; byte_test:2,>,512,2; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate: Disable the Breach Return Point function if not required, or apply network-level filtering to block suspicious MAVLink messages.
- Short-term: Monitor for updates from PX4 and apply the patch as soon as it becomes available.
- Long-term: Implement a robust input validation framework for all MAVLink message handlers. Conduct regular security audits of the codebase.
Valters IT
DevSecOps & Cyber Threat Intelligence