Skip to main content

PX4-Autopilot CVE-2025-15150

MEDIUM
Buffer Overflow (CWE-119)
2025-12-28 cna@vuldb.com
4.8
CVSS 4.0 · Vendor: vuldb
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain local access to device
  2. Exploit
    Plant oversized log filepath entry
  3. Execution
    Trigger unbounded sscanf in MavlinkLogHandler
  4. Impact
    Overflow stack buffer, corrupt memory/crash autopilot

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, buffer size validation
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires local access to the PX4 device and the ability to influence the log directory listing that MavlinkLogHandler reads: the vulnerable code parses each log-index line with sscanf(line, "%" PRIu32 " %" PRIu32 " %s", ...) with NO field-width limit, writing an attacker-influenced filepath token into a fixed stack buffer (filepath[60] in the listing path, and the LogEntry.filepath buffer in log_entry_from_id). A filepath field longer than the destination buffer overflows it. Limiting factors: no remote/network vector (AV:L) and some privilege is required (PR:L) to place or control the oversized log entry; there is no user-interaction requirement (UI:N). This is not exploitable against a default configuration purely over the network - an attacker must already have local access or write influence over the log state the handler parses.

Impact

This is a genuine but low-to-moderate priority issue. The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:L/UI:N) scores 4.8 (medium) and all three impact metrics are only Low (VC:L/VI:L/VA:L), with no scope/subsequent-system impact. The decisive limiting signal is the Local attack vector combined with required privileges (PR:L): the CVE text explicitly states 'the attack is only possible with local access', which is consistent with the CVSS vector - the two signals agree, not conflict. Publicly available exploit code exists (referenced GitHub issue #26118 and PR #26124), which raises practical reproducibility, but there is NO CISA KEV listing and NO EPSS score provided in the input, so there is no evidence of widespread or active exploitation. POC availability must not be conflated with active exploitation. Net: a real, patch-worthy defect in an embedded flight-controller code path, but the local-only vector and modest, non-escalating impact make it a routine-patch item rather than an emergency. No SSVC decision data or EPSS probability was supplied, so automatability and real-world exploitation likelihood cannot be independently graded from the input.

Exploit ScenarioDerived

An attacker with local access to the PX4 flight controller (or a process able to influence the on-device log directory/listing) plants a log entry whose filepath field exceeds the fixed destination buffer. When a MAVLink client requests a log listing, MavlinkLogHandler::state_listing / log_entry_from_id parses the line with an unbounded sscanf("%s") and overflows the stack buffer. Public exploit/POC material is referenced in the linked GitHub issue and pull request.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 06, 2026

A stack-based buffer overflow in PX4-Autopilot (PX4 drone autopilot firmware) up to and including version 1.16.0 allows a locally positioned attacker to corrupt memory in the MAVLink log handler. The flaw lies in MavlinkLogHandler::state_listing() and MavlinkLogHandler::log_entry_from_id(), where log-index lines are parsed with sscanf(line, "%u %u %s", ...) using an unbounded %s conversion that writes an attacker-influenced filepath token into fixed-size stack buffers (filepath[60] in the listing path and LogEntry.filepath in the entry path). Exploitation requires local access and the ability to influence the log directory content that the handler reads, and the assessed impact is limited (low confidentiality, integrity and availability), so this is a genuine but low-to-moderate priority issue. Publicly available exploit code exists (referenced via the upstream issue and pull request) and an upstream fix commit is available, though a tagged patched release was not independently confirmed from the provided data.

RemediationAI

The primary fix is to apply upstream commit 338595edd1d235efd885fd5e9f45e7f9dcf4013d (pull request https://github.com/PX4/PX4-Autopilot/pull/26124), which replaces the 60-byte filepath buffer with LOG_FILEPATH_SIZE = 256, adds a static_assert that PX4_MAX_FILEPATH >= LOG_FILEPATH_SIZE, and bounds both sscanf parses with a "%255s" width specifier so an oversized filepath token can no longer overflow the destination; this is classified as an upstream fix available via PR/commit, and a released patched version is not independently confirmed from the provided data, so build and flash PX4-Autopilot from the fixed commit or a later release that includes it. Where patching or rebuilding firmware is not immediately possible, compensating controls must target the local-access prerequisite: restrict physical and debug-port access to the flight controller, and prevent untrusted writers from creating or renaming log files (in particular do not allow attacker-supplied filenames or externally synchronized log directories to be placed under the device log directory PX4_STORAGEDIR/log). The trade-off is that tightening filesystem/log-directory write permissions on the autopilot can disrupt log synchronization tooling or MAVLink log-download workflows that rely on external writes, so those integrations must be re-validated. Critically, because both sscanf call sites are reachable through MAVLink log listing/entry handling, disabling or restricting the MAVLink log-listing/log-download interface on untrusted links reduces the reachable parse surface, at the cost of losing remote log retrieval until the firmware is updated. Refer to the upstream issue and PR (https://github.com/PX4/PX4-Autopilot/issues/26118 and https://github.com/PX4/PX4-Autopilot/pull/26124) and the VulDB entries (https://vuldb.com/?id.338527, https://vuldb.com/?submit.717323) for patch detail and tracking.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected component is the MAVLink log handler in the PX4 flight stack, which exposes log-file management over the MAVLink protocol used for ground-station communications. The handler reads the on-device log directory (PX4_STORAGEDIR "/log") and parses each listing line with sscanf using the format "%<PRIu32> %<PRIu32> %s", converting the third (filepath) token into a destination buffer. Because the %s conversion has no field-width limit, any filepath token longer than the destination overflows it - in MavlinkLogHandler::state_listing() the destination is a fixed stack buffer declared as char filepath[60], and in MavlinkLogHandler::log_entry_from_id() it is the filepath member of the LogEntry structure, whose declared size differs from the local listing buffer. This is a classic CWE-119 improper-restriction-of-operations-within-the-bounds-of-a-memory-buffer defect, in this case a stack overflow driven by unbounded string copying. The upstream fix increases the buffer to a shared constant LOG_FILEPATH_SIZE = 256, adds static_assert checks that PX4_MAX_FILEPATH is at least LOG_FILEPATH_SIZE, and hardcodes a 255-width specifier ("%255s") in both sscanf calls so the parsed token can no longer exceed the destination minus the null terminator. The MAVLink log-listing/log-download functionality is the delivery surface, consistent with the CPE identifier cpe:2.3:a:dronecode:px4_drone_autopilot:*:*:*:*:*:*:*:* covering PX4 drone autopilot builds up to 1.16.0. There is no remote/network vector and no user-interaction component: the attacker must already have local access or write influence over the log state that the handler parses.

Know when Px4 Drone Autopilot gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (vuldb) PRIMARY 4.8 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 5.3 MEDIUM

Local-only per the description (AV:L), requires some privilege/local control of log data (PR:L), no user interaction; stack overflow yields limited info/integrity/availability impact (C:L/I:L/A:L), scope unchanged.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (vuldb).

CVSS VectorVendor: vuldb

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

A vulnerability was found in PX4 PX4-Autopilot up to 1.16.0. Affected by this issue is the function MavlinkLogHandler::state_listing/MavlinkLogHandler::log_entry_from_id of the file src/modules/mavlink/mavlink_log_handler.cpp. The manipulation results in stack-based buffer overflow. The attack is only possible with local access. The patch is identified as 338595edd1d235efd885fd5e9f45e7f9dcf4013d. It is best practice to apply a patch to resolve this issue.

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Low
open-source drone autopilot, niche UAV/robotics industry footprint
Exploit
POC
Public exploit code exists
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Affected Products (CPE)CVE.org

cpe:2.3:a:dronecode:px4_drone_autopilot:*:*:*:*:*:*:*:*
CVE-2023-46256 CRITICAL POC
9.8 Oct 31

PX4-Autopilot provides PX4 flight control solution for drones. Rated critical severity (CVSS 9.8), this vulnerability is

CVE-2026-26742 HIGH POC
8.1 Mar 10

PX4 Autopilot versions 1.12.x through 1.15.x can be forced into an unsafe re-arm state when pilots switch to Manual mode

CVE-2026-26741 HIGH POC
8.1 Mar 10

PX4 Autopilot versions 1.12.x through 1.15.x contain a logic flaw in the mode switching mechanism. [CVSS 8.1 HIGH]

CVE-2024-38952 HIGH POC
7.5 Jun 25

PX4-Autopilot v1.14.3 was discovered to contain a buffer overflow via the topic_name parameter at /logger/logged_topics.

CVE-2024-29460 MEDIUM POC
6.6 Apr 10

An issue in PX4 Autopilot v.1.14.0 allows an attacker to manipulate the flight path allowing for crashes of the drone vi

CVE-2024-38951 MEDIUM POC
6.5 Jun 25

A buffer overflow in PX4-Autopilot v1.12.3 allows attackers to cause a Denial of Service (DoS) via a crafted MavLink mes

CVE-2024-30800 MEDIUM POC
5.6 Apr 23

PX4 Autopilot v.1.14 allows an attacker to fly the drone into no-fly zones by breaching the geofence using flaws in the

CVE-2024-30799 MEDIUM POC
4.4 Apr 22

An issue in PX4 Autopilot v1.14 and before allows a remote attacker to execute arbitrary code and cause a denial of serv

CVE-2023-47625 MEDIUM POC
4.3 Nov 13

PX4 autopilot is a flight control solution for drones. Rated medium severity (CVSS 4.3), this vulnerability is remotely

CVE-2024-24255 MEDIUM POC
4.2 Feb 06

A Race Condition discovered in geofence.cpp and mission_feasibility_checker.cpp in PX4 Autopilot 1.14 and earlier allows

CVE-2024-24254 MEDIUM POC
4.2 Feb 06

PX4 Autopilot 1.14 and earlier, due to the lack of synchronization mechanism for loading geofence data, has a Race Condi

CVE-2024-40427 HIGH POC
7.9 Jan 07

Stack Buffer Overflow in PX4-Autopilot v1.14.3, which allows attackers to execute commands to exploit this vulnerability

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy