CVE-2024-41645

9.8 CRITICAL

📋 TL;DR

This CVE describes an insecure permissions vulnerability in ROS2 navigation2's nav2_amcl component that allows attackers to execute arbitrary code via a crafted script. Systems running ROS2 navigation2 v.humble with default configurations are vulnerable. Attackers can gain full control of affected robotic systems.

💻 Affected Systems

Products:
  • Open Robotics Robotic Operating System 2 (ROS2) navigation2
Versions: v.humble
Operating Systems: Linux
Default Config Vulnerable: ⚠️ Yes
Notes: Specifically affects the nav2_amcl component in ROS2 navigation2. Systems using ROS2 with navigation2 package in default configuration are vulnerable.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise allowing attackers to execute arbitrary code, potentially taking control of robotic systems, stealing sensitive data, or disrupting critical operations.

🟠

Likely Case

Local privilege escalation leading to unauthorized access to robotic control systems and potential manipulation of navigation functions.

🟢

If Mitigated

Limited impact with proper access controls and network segmentation preventing unauthorized access to vulnerable components.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires access to the system and knowledge of ROS2 navigation2 architecture. The vulnerability involves insecure permissions that can be leveraged for code execution.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Check navigation2 repository for latest patched version

Vendor Advisory: https://github.com/ros-navigation/navigation2/issues/4497

Restart Required: Yes

Instructions:

1. Update ROS2 navigation2 package to latest version. 2. Apply security patches from the navigation2 repository. 3. Restart ROS2 services and navigation2 components. 4. Verify permissions on nav2_amcl scripts and executables.

🔧 Temporary Workarounds

Restrict Script Permissions

linux

Manually set secure permissions on nav2_amcl scripts and executables to prevent unauthorized execution.

chmod 750 /path/to/nav2_amcl/scripts
chown root:root /path/to/nav2_amcl/executables

Network Segmentation

all

Isolate ROS2 navigation2 systems from untrusted networks and implement strict access controls.

🧯 If You Can't Patch

  • Implement strict access controls and principle of least privilege for all ROS2 navigation2 components
  • Monitor system logs for unauthorized access attempts to nav2_amcl scripts and executables

🔍 How to Verify

Check if Vulnerable:

Check ROS2 navigation2 version and verify permissions on nav2_amcl scripts. Vulnerable if using v.humble with insecure script permissions.

Check Version:

ros2 pkg list | grep navigation2 && apt-cache show ros-humble-navigation2

Verify Fix Applied:

Verify navigation2 package is updated to patched version and check that nav2_amcl scripts have secure permissions (not world-writable or executable).

📡 Detection & Monitoring

Log Indicators:

  • Unauthorized access attempts to nav2_amcl scripts
  • Unexpected process execution from nav2_amcl directories
  • Permission changes on navigation2 files

Network Indicators:

  • Unusual network traffic from ROS2 navigation2 systems
  • Unexpected remote connections to navigation2 services

SIEM Query:

source="ros2_logs" AND (event="permission_change" OR event="script_execution") AND target="nav2_amcl"

🔗 References

📤 Share & Export