CVE-2023-33975
📋 TL;DR
CVE-2023-33975 is a critical memory corruption vulnerability in RIOT-OS's 6LoWPAN network stack that allows remote attackers to execute arbitrary code or cause denial of service via crafted network frames. IoT devices running RIOT-OS versions 2023.01 and earlier are affected when processing fragmented IP datagrams. This vulnerability enables complete device compromise through network-based attacks.
💻 Affected Systems
- RIOT-OS
📦 What is this software?
Riot by Riot Os
⚠️ Risk & Real-World Impact
Worst Case
Remote code execution leading to full device compromise, persistence, lateral movement, and data exfiltration
Likely Case
Denial of service causing device crashes and service disruption
If Mitigated
No impact if fragmented IP datagrams are disabled or patched version is deployed
🎯 Exploit Status
CVSS 9.8 indicates trivial exploitation, but requires understanding of 6LoWPAN fragmentation protocols
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Fixed in pull request 19680, included in versions after 2023.01
Vendor Advisory: https://github.com/RIOT-OS/RIOT/security/advisories
Restart Required: Yes
Instructions:
1. Update RIOT-OS to version after 2023.01 2. Apply patch from PR 19680 3. Rebuild and redeploy firmware 4. Restart affected devices
🔧 Temporary Workarounds
Disable fragmented IP datagrams
allPrevents processing of fragmented 6LoWPAN packets that trigger the vulnerability
CONFIG_GNRC_SIXLOWPAN_FRAG_RB=n in Makefile or Kconfig
🧯 If You Can't Patch
- Implement network segmentation to isolate IoT devices from untrusted networks
- Deploy network intrusion detection systems to monitor for 6LoWPAN fragmentation anomalies
🔍 How to Verify
Check if Vulnerable:
Check RIOT-OS version: if <= 2023.01 and CONFIG_GNRC_SIXLOWPAN_FRAG_RB=y, device is vulnerable
Check Version:
make info or check RIOT_VERSION in build configuration
Verify Fix Applied:
Verify version > 2023.01 or check that CONFIG_GNRC_SIXLOWPAN_FRAG_RB=n
📡 Detection & Monitoring
Log Indicators:
- Memory corruption errors
- Packet buffer allocation failures
- Unexpected device reboots
Network Indicators:
- Malformed 6LoWPAN fragmentation packets
- Unusual fragmentation patterns
SIEM Query:
device_logs: ("memory corruption" OR "buffer overflow" OR "panic") AND source:"riot-os"
🔗 References
- https://github.com/RIOT-OS/RIOT/blob/f41b4b67b6affca0a8b32edced7f51088696869a/sys/net/gnrc/network_layer/sixlowpan/frag/rb/gnrc_sixlowpan_frag_rb.c#L320
- https://github.com/RIOT-OS/RIOT/blob/f41b4b67b6affca0a8b32edced7f51088696869a/sys/net/gnrc/network_layer/sixlowpan/frag/rb/gnrc_sixlowpan_frag_rb.c#L388
- https://github.com/RIOT-OS/RIOT/blob/f41b4b67b6affca0a8b32edced7f51088696869a/sys/net/gnrc/network_layer/sixlowpan/frag/rb/gnrc_sixlowpan_frag_rb.c#L463
- https://github.com/RIOT-OS/RIOT/blob/f41b4b67b6affca0a8b32edced7f51088696869a/sys/net/gnrc/network_layer/sixlowpan/frag/rb/gnrc_sixlowpan_frag_rb.c#L467
- https://github.com/RIOT-OS/RIOT/blob/f41b4b67b6affca0a8b32edced7f51088696869a/sys/net/gnrc/network_layer/sixlowpan/frag/rb/gnrc_sixlowpan_frag_rb.c#L480
- https://github.com/RIOT-OS/RIOT/commit/1aeb90ee5555ae78b567a6365ae4ab71bfd1404b
- https://github.com/RIOT-OS/RIOT/pull/19680
- https://github.com/RIOT-OS/RIOT/security/advisories/GHSA-f6ff-g7mh-58q4
- https://github.com/RIOT-OS/RIOT/blob/f41b4b67b6affca0a8b32edced7f51088696869a/sys/net/gnrc/network_layer/sixlowpan/frag/rb/gnrc_sixlowpan_frag_rb.c#L320
- https://github.com/RIOT-OS/RIOT/blob/f41b4b67b6affca0a8b32edced7f51088696869a/sys/net/gnrc/network_layer/sixlowpan/frag/rb/gnrc_sixlowpan_frag_rb.c#L388
- https://github.com/RIOT-OS/RIOT/blob/f41b4b67b6affca0a8b32edced7f51088696869a/sys/net/gnrc/network_layer/sixlowpan/frag/rb/gnrc_sixlowpan_frag_rb.c#L463
- https://github.com/RIOT-OS/RIOT/blob/f41b4b67b6affca0a8b32edced7f51088696869a/sys/net/gnrc/network_layer/sixlowpan/frag/rb/gnrc_sixlowpan_frag_rb.c#L467
- https://github.com/RIOT-OS/RIOT/blob/f41b4b67b6affca0a8b32edced7f51088696869a/sys/net/gnrc/network_layer/sixlowpan/frag/rb/gnrc_sixlowpan_frag_rb.c#L480
- https://github.com/RIOT-OS/RIOT/commit/1aeb90ee5555ae78b567a6365ae4ab71bfd1404b
- https://github.com/RIOT-OS/RIOT/pull/19680
- https://github.com/RIOT-OS/RIOT/security/advisories/GHSA-f6ff-g7mh-58q4