CVE-2025-66646

7.5 HIGH

📋 TL;DR

A NULL pointer dereference vulnerability in RIOT OS's IPv6 fragmentation reassembly allows remote attackers to crash the operating system by sending specially crafted IPv6 packets. This affects IoT and embedded devices running RIOT OS with the gnrc_ipv6_ext_frag module enabled. The vulnerability results in denial of service (DoS) by causing the OS to crash.

💻 Affected Systems

Products:
  • RIOT OS
Versions: Versions up to and including v2025.07
Operating Systems: RIOT OS
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when gnrc_ipv6_ext_frag module is enabled. Many IoT devices may have this disabled by default.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete device crash requiring physical reset or power cycle, potentially disrupting critical IoT operations in industrial, medical, or infrastructure systems.

🟠

Likely Case

Temporary service disruption until device restarts, affecting device availability and potentially causing data loss in active operations.

🟢

If Mitigated

No impact if IPv6 fragmentation is disabled or devices are behind proper network filtering.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires sending crafted IPv6 packets with fragment offset 0 and empty payload to trigger the NULL pointer dereference.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v2025.10

Vendor Advisory: https://github.com/RIOT-OS/RIOT/security/advisories

Restart Required: Yes

Instructions:

1. Update RIOT OS to version 2025.10 or later. 2. Rebuild and flash the updated firmware to affected devices. 3. Verify the gnrc_ipv6_ext_frag module is properly patched.

🔧 Temporary Workarounds

Disable IPv6 Fragmentation

all

Disable the gnrc_ipv6_ext_frag module in RIOT OS configuration to prevent exploitation.

In RIOT OS configuration: set 'USEMODULE += gnrc_ipv6_ext_frag' to 'USEMODULE -=' or comment out

Network Filtering

linux

Block IPv6 fragmented packets at network perimeter or firewall.

iptables -A INPUT -p ipv6 --fragment -j DROP
ip6tables -A INPUT -m frag --fragmore -j DROP

🧯 If You Can't Patch

  • Disable the gnrc_ipv6_ext_frag module in device configuration
  • Implement network-level filtering to block all IPv6 fragmented packets to affected devices

🔍 How to Verify

Check if Vulnerable:

Check if running RIOT OS version 2025.07 or earlier with gnrc_ipv6_ext_frag module enabled in configuration.

Check Version:

Check RIOT OS version in source code or device firmware version string

Verify Fix Applied:

Verify RIOT OS version is 2025.10 or later and test with crafted IPv6 fragmented packets with empty payload.

📡 Detection & Monitoring

Log Indicators:

  • System crash logs
  • Kernel panic messages
  • Unexpected device reboots

Network Indicators:

  • Incoming IPv6 packets with fragment offset 0 and minimal/empty payload

SIEM Query:

source="network" AND protocol="IPv6" AND fragment_offset=0 AND payload_size<10

🔗 References

📤 Share & Export