Skip to main content

RIOT OS EUVDEUVD-2026-95931

| CVE-2026-107836 HIGH
Out-of-bounds Read (CWE-125)
2026-10-09 GitHub_M
7.1
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Client initiates nanoCoAP blockwise GET to attacker-controlled server
  2. Delivery
    Server returns expected block number with oversized szx
  3. Exploit
    Derived offset exceeds slice offset, ctx->offset - offset underflows
  4. Execution
    Out-of-bounds read before payload buffer
  5. Impact
    Client crash (DoS), possible adjacent memory exposure

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the RIOT device act as a nanoCoAP client and call the blockwise slice path nanocoap_sock_get_slice(), and that the attacker control or impersonate the CoAP server responding to that request (direct malicious server or on-path MITM of CoAP/UDP traffic). The trigger condition is a Block2 response carrying the expected block number but a server-chosen larger block size (szx), which makes the derived offset exceed the requested slice offset and underflow ctx->offset - offset in _2buf_slice(). Limiting factors: the client must initiate the transaction (UI:P - no server-side push), the application must use the vulnerable slice/blockwise API rather than other nanoCoAP paths, and the device must be running RIOT 2026.07 or earlier; attacker trust-of-endpoint (not raw network reachability) is the real gate on realistic exploitation.

Impact

The provided CVSS 4.0 score is 7.1 (High) with vector AV:N/AC:L/AT:N/PR:N/UI:P, meaning network-reachable, low-complexity, no privileges, but requiring passive user interaction - specifically the RIOT client must itself initiate a blockwise CoAP request to a server the attacker controls or can impersonate. Impact is dominated by VA:H (client crash / denial of service) with only VC:L (possible exposure of a small amount of adjacent memory via the out-of-bounds read, CWE-125) and no integrity impact - this is a read/DoS bug, not code execution. No EPSS probability is present in the input, the CVE is NOT in CISA KEV, and no public exploit was provided, so there is no evidence of active or widespread exploitation (no public exploit identified at time of analysis). The practical priority is MODERATE rather than urgent: exploitation is gated on the victim device connecting to a malicious/MITM CoAP server AND on the deployment actually using the nanoCoAP blockwise slice client path. One caveat to flag explicitly: the input marks PR:N (unauthenticated) and the vector is network, but the real limiting factor is attacker control of the responding CoAP endpoint plus client-initiated contact - verify the deployment's CoAP trust model. Also note the 'Information Disclosure' tag reflects a described *potential* ('potentially exposing adjacent memory'), not a confirmed leak primitive; treat info-disclosure as unconfirmed and the DoS as the reliable outcome.

Exploit ScenarioDerived

An attacker stands up (or MITM-hijacks) a CoAP server that a RIOT-based IoT device fetches a resource from via nanocoap_sock_get_slice(). When the client requests a specific Block2 block, the malicious server replies with the expected block number but a larger-than-requested block size (szx); the derived offset then exceeds the client's slice offset, underflowing ctx->offset - offset in _2buf_slice() and causing an out-of-bounds read before the payload buffer that crashes the device. No public exploit is provided, but the upstream fix PR/commit documents the exact mechanism, making reproduction straightforward for a knowledgeable attacker who controls the server side.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 09, 2026

Malicious or impersonated CoAP servers can cause out-of-bounds reads and denial of service in RIOT OS 2026.07 and earlier nanoCoAP clients through the blockwise slice path. The flaw is in nanocoap_sock_get_slice(): a server-controlled Block2 szx value is not checked against the requested block geometry, so a larger block size with the expected block number makes the derived offset exceed the client slice offset and underflows the buffer-relative calculation in _2buf_slice(). The issue is rated CVSS 4.0 7.1 (High) with AV:N/AC:L/AT:N/PR:N/UI:P, meaning unauthenticated network reachability but requiring the RIOT client to initiate a blockwise request to a server the attacker controls or impersonates; no public exploit was identified at the time of analysis, and an upstream fix is available via PR/commit but no fixed release is confirmed.

RemediationAI

No vendor-released fixed version was confirmed as of this review, so the primary action is to apply the upstream fix in commit 49b894cbe091510093273b98d92c4a17167d6839 via PR https://github.com/RIOT-OS/RIOT/pull/22518, or track the GitHub security advisory https://github.com/RIOT-OS/RIOT/security/advisories/GHSA-x924-p5fq-26pc for a patched release. Until a patched build is deployed, avoid calling the vulnerable nanocoap_sock_get_slice() blockwise slice path from application code if the functionality can be achieved through non-blockwise requests or validated server responses, recognizing that other nanoCoAP paths may still process untrusted Block2 options. Restrict CoAP client traffic to trusted server endpoints and deploy DTLS/OSCORE with peer authentication using credman/sock/dtls so an attacker cannot easily impersonate or become an on-path CoAP server; trade-offs include added provisioning, key management, and possible interoperability work. Network ACLs limiting UDP CoAP to known server IP addresses and ports can reduce exposure but are imperfect against spoofing or a compromised trusted server.

Affected VersionsENISA

RIOT ≤ 2026.07

Affected Packages

euvd riot no fix

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

RIOT OS is an open-source microcontroller operating system for IoT and embedded systems. The vulnerable component is nanoCoAP, its CoAP client, which implements RFC 7959 block-wise transfers. In a Block2 response, the SZX field encodes block size as 2**(SZX+4) bytes and NUM encodes the block number; the client derives a block offset from NUM and SZX. CVE-2026-107836 is CWE-125 (out-of-bounds read) because _block_cb() in nanocoap_sock_get_slice() accepts a Block2 response when NUM matches the expected block but does not verify that SZX and the resulting offset match the requested block geometry. A malicious server can return the expected NUM with a larger SZX, causing the derived offset to exceed ctx->offset, so ctx->offset - offset underflows in _2buf_slice(); the resulting buffer-relative calculation reads before the payload buffer, which can crash the client (denial of service) and potentially expose adjacent memory. The CPE cpe:2.3:a:riot-os:riot:*:*:*:*:*:*:*:* covers RIOT OS; the upstream patch adds a bounds-checked szx-to-size conversion and a maximum block-number constant to harden this path.

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

Vendor (GitHub_M) PRIMARY 7.1 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.1 HIGH

Network-reachable client bug with no auth (PR:N), but victim must initiate the request to a malicious server (UI:R); crash gives A:H and the pre-buffer read gives at most C:L with no integrity impact.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

RIOT is an open-source microcontroller operating system designed for Internet of Things devices and other embedded systems. In 2026.07 and earlier, the nanoCoAP client function nanocoap_sock_get_slice() in sys/net/application_layer/nanocoap/sock.c accepts a Block2 response when _block_cb() sees the expected block number without also verifying that the server-controlled szx and derived offset match the requested block geometry. A malicious CoAP server can return the expected block number with a larger block size, causing the derived offset to exceed the client slice offset and making ctx->offset - offset underflow in _2buf_slice(). The resulting buffer-relative calculation can read before the payload buffer and crash the client, causing denial of service and potentially exposing adjacent memory. No fixed release is available as of this review.

Technical POC Analysis

CWE-125 (Out-of-bounds Read), with CWE-191 (Integer Underflow) as the mechanism.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

RIOT OS 2026.07 and earlier ship a nanoCoAP client library whose blockwise transfer handler can be driven into out-of-bounds memory reads and a crash by a hostile or impersonated CoAP server, meaning any product or fleet built on these RIOT releases is exposed to remote denial of service. The practical exposure is limited to devices that initiate a blockwise request to a server the attacker either controls or has hijacked, but because such traffic is routine in IoT deployments, leadership should treat this as an availability and fleet-reliability risk for connected product lines rather than a data-breach risk. No vendor-released fixed version is available today, so remediation depends on interim engineering controls until upstream releases are cut and adopted.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: apply the upstream fix commit as a downstream patch when building RIOT OS, restrict nanoCoAP clients to allow-listed or authenticated servers to prevent contact with malicious or impersonated CoAP endpoints, disable or throttle outbound blockwise (Block2) requests where the feature is not required, harden the block2 szx-versus-block-geometry check in nanocoap_sock_get_slice()/_2buf_slice(), and enable watchdog restarts plus crash telemetry to limit and detect denial-of-service impact.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
niche open-source IoT microcontroller OS, limited production/embedded footprint
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Riot

View all
CVE-2023-33975 CRITICAL POC
9.8 May 30

RIOT-OS, an operating system for Internet of Things (IoT) devices, contains a network stack with the ability to process

CVE-2019-1000006 CRITICAL POC
9.8 Feb 04

RIOT RIOT-OS version after commit 7af03ab624db0412c727eed9ab7630a5282e2fd3 contains a Buffer Overflow vulnerability in s

CVE-2026-25139 CRITICAL POC
9.1 Feb 04

RIOT IoT operating system has an out-of-bounds read vulnerability (CVSS 9.1) that could lead to information disclosure o

CVE-2024-32018 CRITICAL POC
9.0 May 01

RIOT is a real-time multi-threading operating system that supports a range of devices that are typically 8-bit, 16-bit a

CVE-2024-32017 CRITICAL POC
9.0 May 01

RIOT is a real-time multi-threading operating system that supports a range of devices that are typically 8-bit, 16-bit a

CVE-2024-31225 CRITICAL POC
9.0 May 01

RIOT is a real-time multi-threading operating system that supports a range of devices that are typically 8-bit, 16-bit a

CVE-2024-52802 HIGH POC
7.5 Nov 22

RIOT is an operating system for internet of things (IoT) devices. Rated high severity (CVSS 7.5), this vulnerability is

CVE-2023-24818 HIGH POC
7.5 Apr 24

RIOT-OS, an operating system that supports Internet of Things devices, contains a network stack with the ability to proc

CVE-2019-16754 HIGH POC
7.5 Sep 24

RIOT 2019.07 contains a NULL pointer dereference in the MQTT-SN implementation (asymcute), potentially allowing an attac

CVE-2019-15702 HIGH POC
7.5 Aug 27

In the TCP implementation (gnrc_tcp) in RIOT through 2019.07, the parser for TCP options does not terminate on all input

CVE-2019-15134 HIGH POC
7.5 Aug 17

RIOT through 2019.07 contains a memory leak in the TCP implementation (gnrc_tcp), allowing an attacker to consume all me

CVE-2024-53980 MEDIUM POC
6.9 Nov 29

RIOT is an open-source microcontroller operating system, designed to match the requirements of Internet of Things (IoT)

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy