CVE-2026-26011 Overview
CVE-2026-26011 is a critical heap out-of-bounds write vulnerability affecting the Nav2 AMCL (Adaptive Monte Carlo Localization) particle filter clustering logic within the navigation2 framework, a ROS 2 Navigation Framework and System. This vulnerability allows an unauthenticated attacker on the same ROS 2 DDS domain to trigger a negative index write into heap memory by publishing a crafted geometry_msgs/PoseWithCovarianceStamped message with extreme covariance values to the /initialpose topic.
Critical Impact
This vulnerability enables controlled heap corruption that can lead to further exploitation or provides a reliable single-packet denial of service that kills localization and halts all robot navigation operations.
Affected Products
- navigation2 version 1.3.11 and earlier
- ROS 2 systems using Nav2 AMCL for robot localization
- Autonomous mobile robots relying on the Nav2 navigation stack
Discovery Timeline
- February 12, 2026 - CVE-2026-26011 published to NVD
- February 12, 2026 - Last updated in NVD database
Technical Details for CVE-2026-26011
Vulnerability Analysis
The vulnerability resides in the particle filter clustering logic within Nav2 AMCL. When processing pose initialization messages, the system fails to properly validate covariance matrix values before using them in cluster index calculations. By providing extreme covariance values in a geometry_msgs/PoseWithCovarianceStamped message, an attacker can cause the cluster index calculation to produce a negative value, resulting in an out-of-bounds memory write at set->clusters[-1].
This is classified as CWE-122 (Heap-based Buffer Overflow). The critical issue is compounded by the fact that in Release builds, the only boundary check—an assert statement—is compiled out, leaving zero runtime protection against this attack.
Root Cause
The root cause is improper validation of covariance matrix values in incoming pose messages before they are used in array index calculations. The clustering algorithm does not validate that the computed cluster index is within valid bounds, and relies solely on assert statements for boundary checking. Since assert macros are typically disabled in production Release builds through the NDEBUG preprocessor definition, the vulnerability has no runtime protection in deployed systems.
Attack Vector
An attacker with network access to the ROS 2 DDS domain can exploit this vulnerability without authentication. The attack requires sending a single crafted geometry_msgs/PoseWithCovarianceStamped message to the /initialpose topic containing extreme covariance values. This triggers the negative index write (set->clusters[-1]) into heap memory preceding the allocated buffer.
The attacker can control at minimum the size of the heap chunk where set->clusters resides, enabling controlled corruption of heap chunk metadata. This primitive can be leveraged for:
- Denial of Service: Immediately crashes the AMCL node, halting localization and all dependent navigation operations
- Further Exploitation: Heap metadata corruption may enable arbitrary code execution through heap exploitation techniques
The security patch introduces input validation in nav2_ros_common/include/nav2_ros_common/validate_messages.hpp:
#ifndef NAV2_ROS_COMMON__VALIDATE_MESSAGES_HPP_
#define NAV2_ROS_COMMON__VALIDATE_MESSAGES_HPP_
+#include <array>
#include <cmath>
#include <iostream>
Source: GitHub Commit Update
Detection Methods for CVE-2026-26011
Indicators of Compromise
- Unexpected crashes of the Nav2 AMCL node or localization failures
- Abnormal messages published to /initialpose topic with extreme or malformed covariance values
- Segmentation faults or heap corruption errors in ROS 2 navigation logs
- Sudden loss of robot localization capability following network activity
Detection Strategies
- Monitor ROS 2 DDS traffic for geometry_msgs/PoseWithCovarianceStamped messages with anomalous covariance matrix values
- Implement logging for all incoming /initialpose topic messages and flag values outside expected operational ranges
- Deploy process monitoring to detect unexpected AMCL node terminations or restarts
- Use SentinelOne Singularity Platform to detect heap corruption and anomalous process behavior
Monitoring Recommendations
- Enable verbose logging on Nav2 AMCL nodes to capture all pose initialization attempts
- Implement network segmentation to restrict access to ROS 2 DDS domains from untrusted sources
- Set up automated alerts for AMCL node crashes or unexpected navigation stack failures
- Monitor system logs for segmentation faults and memory corruption signatures in navigation processes
How to Mitigate CVE-2026-26011
Immediate Actions Required
- Update navigation2 to a patched version that includes the security fix from commit d09ea82477ce9234678a6febf6890235e0a7ce12
- Restrict network access to the ROS 2 DDS domain to trusted hosts only
- Implement DDS security plugins with authentication and encryption if not already enabled
- Monitor for exploitation attempts while preparing to deploy patches
Patch Information
The vulnerability has been addressed by the navigation2 maintainers. The security patch adds proper input validation for covariance values in message handling. Users should update to the latest version of navigation2 that includes this fix.
For detailed patch information, see:
Workarounds
- Implement network-level access controls to restrict which hosts can publish to the /initialpose topic
- Enable ROS 2 DDS Security with authentication to prevent unauthenticated attackers from publishing messages
- Deploy a message filtering node that validates covariance values before forwarding to AMCL
- Consider running navigation nodes in isolated network segments with strict firewall rules
# Example: Enable ROS 2 DDS Security configuration
export ROS_SECURITY_ENABLE=true
export ROS_SECURITY_STRATEGY=Enforce
export ROS_SECURITY_KEYSTORE=/path/to/keystore
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


