{"id":"CVE-2026-107838","aliases":["EUVD-2026-95933","GHSA-39j3-3v73-5mj2"],"status":"published","title":"RIOT: nanocoap_fileserver ignores response initialization failure, leading to reachable assertion","description":"RIOT is an open-source microcontroller operating system designed for Internet of Things devices and other embedded systems. From version 2023.07 through version 2026.07, nanocoap_fileserver callers in sys/net/application_layer/nanocoap/fileserver.c ignore a failure returned by _resp_init() when coap_build_reply() cannot fit a response header into the response buffer. A remote client can send a CoAP request with a sufficiently large extended token when nanocoap_token_ext is enabled, causing response initialization to fail while _get_file() or _get_directory() continues with stale response state. The path then reaches _calc_szx2() and its pdu-\u003epayload_len \u003e reserve assertion, terminating the affected service or device task. No fixed release is available as of this review.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00339,"percentile":0.27694,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-252","CWE-617"],"published":"2026-10-09T17:55:34Z","modified":"2026-11-06T10:46:30Z","products":[{"vendor":"riot-os","product":"riot"}],"references":[{"url":"https://github.com/RIOT-OS/RIOT/security/advisories/GHSA-39j3-3v73-5mj2","tags":["x_refsource_CONFIRM","advisory"]},{"url":"https://github.com/RIOT-OS/RIOT/pull/22745","tags":["x_refsource_MISC","fix"]},{"url":"https://github.com/RIOT-OS/RIOT/commit/d3a47289c58d108575a19e623e4d3f647659e743","tags":["x_refsource_MISC","fix"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/107xxx/CVE-2026-107838.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-107838","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-107838","title":"RIOT: nanocoap_fileserver ignores response initialization failure, leading to reachable assertion","description":"RIOT is an open-source microcontroller operating system designed for Internet of Things devices and other embedded systems. From version 2023.07 through version 2026.07, nanocoap_fileserver callers in sys/net/application_layer/nanocoap/fileserver.c ignore a failure returned by _resp_init() when coap_build_reply() cannot fit a response header into the response buffer. A remote client can send a CoAP request with a sufficiently large extended token when nanocoap_token_ext is enabled, causing response initialization to fail while _get_file() or _get_directory() continues with stale response state. The path then reaches _calc_szx2() and its pdu-\u003epayload_len \u003e reserve assertion, terminating the affected service or device task. No fixed release is available as of this review.","status":"published","published":"2026-10-09T17:55:34.67Z","modified":"2026-10-13T17:07:38.7Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-252","CWE-617"],"updated_at":"2026-11-02T13:45:14.072357Z"}],"euvd":[{"id":"EUVD-2026-95933","description":"RIOT is an open-source microcontroller operating system designed for Internet of Things devices and other embedded systems. From version 2023.07 through version 2026.07, nanocoap_fileserver callers in sys/net/application_layer/nanocoap/fileserver.c ignore a failure returned by _resp_init() when coap_build_reply() cannot fit a response header into the response buffer. A remote client can send a CoAP request with a sufficiently large extended token when nanocoap_token_ext is enabled, causing response initialization to fail while _get_file() or _get_directory() continues with stale response state. The path then reaches _calc_szx2() and its pdu-\u003epayload_len \u003e reserve assertion, terminating the affected service or device task. No fixed release is available as of this review.","status":"published","published":"2026-10-09T17:55:34Z","modified":"2026-10-13T17:07:38Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T17:27:19.576751Z"}],"nvd":[{"id":"CVE-2026-107838","description":"RIOT is an open-source microcontroller operating system designed for Internet of Things devices and other embedded systems. From version 2023.07 through version 2026.07, nanocoap_fileserver callers in sys/net/application_layer/nanocoap/fileserver.c ignore a failure returned by _resp_init() when coap_build_reply() cannot fit a response header into the response buffer. A remote client can send a CoAP request with a sufficiently large extended token when nanocoap_token_ext is enabled, causing response initialization to fail while _get_file() or _get_directory() continues with stale response state. The path then reaches _calc_szx2() and its pdu-\u003epayload_len \u003e reserve assertion, terminating the affected service or device task. No fixed release is available as of this review.","status":"published","published":"2026-10-09T18:17:05.64Z","modified":"2026-10-16T17:17:04.113Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"secondary"}],"cwes":["CWE-252","CWE-617"],"updated_at":"2026-11-02T14:12:55.473789Z"}],"osv":[{"id":"CVE-2026-107838","title":"RIOT: nanocoap_fileserver ignores response initialization failure, leading to reachable assertion","description":"RIOT is an open-source microcontroller operating system designed for Internet of Things devices and other embedded systems. From version 2023.07 through version 2026.07, nanocoap_fileserver callers in sys/net/application_layer/nanocoap/fileserver.c ignore a failure returned by _resp_init() when coap_build_reply() cannot fit a response header into the response buffer. A remote client can send a CoAP request with a sufficiently large extended token when nanocoap_token_ext is enabled, causing response initialization to fail while _get_file() or _get_directory() continues with stale response state. The path then reaches _calc_szx2() and its pdu-\u003epayload_len \u003e reserve assertion, terminating the affected service or device task. No fixed release is available as of this review.","status":"published","published":"2026-10-09T17:55:34.67Z","modified":"2026-11-07T07:05:02.208950068Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"cwes":["CWE-252","CWE-617"],"updated_at":"2026-11-07T03:08:00.155606Z"}]}}
