Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach RIOT nanocoap CoAP server over network
-
DeliverySend malformed oversized Block2 option
-
ExploitOverflow 20-bit block number in coap_block_slicer_init
-
ExecutionProduce invalid slice range
-
ImpactOut-of-bounds access, DoS or memory corruption
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the target to run a RIOT nanocoap or gcoap CoAP server that processes Block2 blockwise transfer options (e.g., nanocoap_server, the nanocoap fileserver _get_file/_get_directory handlers, gcoap DNS, or the gcoap_block_server example) and to be built for a 32-bit target, where blknum*blksize multiplication overflows; versions prior to 2026.07 at/around master baseline commit aeeae69e are affected. Exploitation is remote and unauthenticated (CVSS PR:N) with no user interaction, triggered by a single crafted Block2 option whose block number exceeds the RFC 7959 20-bit maximum. Limiting factors: the CoAP/Block2 server endpoint must be network-reachable to the attacker, the device must be a 32-bit build, and reliable memory corruption (versus a simple crash) depends on the target's memory layout; the fix also now rejects Block2 option lengths greater than 3 bytes per RFC 7959. |
| Impact | The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H, base 9.1) describes a remotely reachable, unauthenticated, low-complexity flaw with high integrity and availability impact and no confidentiality impact - consistent with an integer overflow (CWE-190) that yields out-of-bounds memory access, memory corruption, and denial of service rather than data disclosure. No EPSS score, KEV listing, POC, or SSVC decision data was supplied, so exploitation probability signals are absent and cannot be weighed against the high CVSS. The elevated score is driven almost entirely by the theoretical network-reachable memory-corruption primitive; in practice the real-world risk is tempered by the affected product being a niche embedded/IoT operating system (RIOT) and by the overflow being specific to 32-bit targets with nanocoap Block2/blockwise CoAP handling enabled. One nuance to flag explicitly: the description states the bug 'allows block offset multiplication to overflow on 32-bit targets,' so the full severity is architecture-conditional - 64-bit builds are not described as affected - which the single network-vector CVSS does not capture. Net assessment: a genuinely serious, patch-worthy memory-safety bug for anyone exposing RIOT nanocoap/gcoap CoAP servers to untrusted networks, but there is no evidence of active exploitation, no public exploit, and no EPSS signal, so it should be prioritized as a credible-but-not-confirmed-exploited remote flaw rather than an urgent in-the-wild emergency. |
| Exploit ScenarioDerived | A RIOT-based IoT device runs a nanocoap or gcoap server that answers Block2 (blockwise) GET requests (e.g., the nanocoap_server, fileserver, or gcoap DNS/block examples). A remote attacker on the same reachable network sends a single malformed CoAP request carrying an oversized Block2 option whose block number exceeds the 20-bit maximum, causing block-offset multiplication to overflow during coap_block_slicer_init() and producing an invalid slice range that triggers out-of-bounds memory access, device crash (DoS), or memory corruption. No authentication or user interaction is required; no public exploit code was identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Integer overflow in RIOT OS nanocoap CoAP server allows remote unauthenticated attackers to trigger out-of-bounds memory access, denial of service, or memory corruption by sending a crafted Block2 option with a block number exceeding the 20-bit maximum. Affected versions are prior to 2026.07, specifically builds around master baseline commit aeeae69e on 32-bit targets. No public exploit code or active exploitation has been identified at time of analysis. The CVSS 3.1 base score is 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H).
RemediationAI
Vendor-released patch: upgrade to RIOT OS 2026.07 or later, which contains the fix for this vulnerability. For those tracking the master branch, apply the patch commits 6b283ace3565d931b3edff7e115d4f79339253b8 and ee1fa0ef91874494823d476392572aeefdbc6b74. The fix enforces the RFC 7959 20-bit maximum block number and rejects Block2 option lengths greater than 3 bytes. If upgrading is not immediately possible, restrict network access to the CoAP server (e.g., firewall rules) to trusted clients only; this is a compensating control that reduces exposure but does not eliminate the flaw. Alternatively, if blockwise transfers are not required, disable Block2 support in the application, though this may break legitimate large-payload transfers. Note that only 32-bit builds are susceptible to the integer overflow, but all builds should apply the fix to prevent the option-length validation bypass. The vendor advisory is at https://github.com/RIOT-OS/RIOT/security/advisories/GHSA-8365-gj33-rgpf.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability is a CWE-190 integer overflow in the CoAP Block2 option processing of RIOT OS's nanocoap and gcoap libraries. CoAP (Constrained Application Protocol, RFC 7252) uses Block2 options for blockwise transfers, where the block number is encoded in 20 bits (RFC 7959). In affected versions, coap_get_blockopt() accepts option lengths up to 4 bytes without enforcing the 20-bit maximum, then passes the oversized block number to coap_block_slicer_init(), which computes slicer->start = blknum * blksize. On 32-bit targets, this multiplication can overflow, producing an invalid slice range that leads to out-of-bounds memory reads/writes. The fix, applied in commits 6b283ace and ee1fa0ef, adds overflow checks via __builtin_mul_overflow and __builtin_add_overflow, and rejects Block2 option lengths greater than 3 bytes. Affected components include the nanocoap server example, the nanocoap fileserver (_get_file and _get_directory handlers), gcoap DNS, and the gcoap_block_server example. The CPE for affected products is cpe:2.3:a:riot-os:riot:*:*:*:*:*:*:*:*.
Know when Riot 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
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
Remote unauthenticated CoAP request with no interaction (AV:N/AC:L/PR:N/UI:N); integer overflow yields memory corruption and DoS (I:H/A:H) but no disclosure (C:N), scope unchanged.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
RIOT is an open-source microcontroller operating system designed for Internet of Things devices and other embedded systems. Prior to 2026.07, nanocoap accepts oversized CoAP Block2 option values without enforcing the 20-bit maximum block number, allowing block offset multiplication to overflow on 32-bit targets. The affected master baseline is commit aeeae69e; the verified fix is later on master and remains unreleased. The oversized value passes from coap_get_blockopt() to coap_block_slicer_init(). A remote CoAP client can send a malformed Block2 option that produces an invalid slice range and can cause out-of-bounds memory access, denial of service, or memory corruption. This vulnerability is fixed in 2026.07.
Technical POC Analysis
CWE-190 integer overflow in RIOT OS nanocoap Block2 handling.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A critical flaw in the RIOT OS nanocoap CoAP server - the networking stack underpinning a broad range of connected and industrial IoT devices - lets any unauthenticated party on the network crash or corrupt memory on affected devices simply by sending a malformed request. Because these are typically long-lived, field-deployed endpoints, a successful attack could disable monitoring, telemetry, or control functions across an entire device fleet at once. There is currently no vendor patch, so exposure persists until mitigation or an updated release is available.
No vendor-released patch identified at time of analysis. Interim mitigations: block or validate Block2 options with block numbers exceeding the 20-bit maximum at network gateways/firewalls; disable the nanocoap CoAP server where unused; isolate affected devices on segmented VLANs with strict access control; apply rate limiting and IDS signatures for malformed Block2 traffic; monitor device availability and unexpected restarts; migrate to RIOT OS 2026.07 or later when available.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
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.
Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
RIOT-OS, an operating system for Internet of Things (IoT) devices, contains a network stack with the ability to process
RIOT RIOT-OS version after commit 7af03ab624db0412c727eed9ab7630a5282e2fd3 contains a Buffer Overflow vulnerability in s
RIOT IoT operating system has an out-of-bounds read vulnerability (CVSS 9.1) that could lead to information disclosure o
RIOT is a real-time multi-threading operating system that supports a range of devices that are typically 8-bit, 16-bit a
RIOT is a real-time multi-threading operating system that supports a range of devices that are typically 8-bit, 16-bit a
RIOT is a real-time multi-threading operating system that supports a range of devices that are typically 8-bit, 16-bit a
RIOT is an operating system for internet of things (IoT) devices. Rated high severity (CVSS 7.5), this vulnerability is
RIOT-OS, an operating system that supports Internet of Things devices, contains a network stack with the ability to proc
RIOT 2019.07 contains a NULL pointer dereference in the MQTT-SN implementation (asymcute), potentially allowing an attac
In the TCP implementation (gnrc_tcp) in RIOT through 2019.07, the parser for TCP options does not terminate on all input
RIOT through 2019.07 contains a memory leak in the TCP implementation (gnrc_tcp), allowing an attacker to consume all me
RIOT is an open-source microcontroller operating system, designed to match the requirements of Internet of Things (IoT)
EUVD-2026-102945
NVD
CVE.org
Vulnrichment
GitHub
Exploit-DB