Description
Golioth Firmware SDK version 0.19.1 prior to 0.22.0, fixed in commit 0e788217, contain an out-of-bounds read due to improper null termination of a blockwise transfer path. blockwise_transfer_init() accepts a path whose length equals CONFIG_GOLIOTH_COAP_MAX_PATH_LEN and copies it using strncpy() without guaranteeing a trailing NUL byte, leaving ctx->path unterminated. A later strlen() on this buffer (in golioth_coap_client_get_internal()) can read past the end of the allocation, resulting in a crash/denial of service. The input is application-controlled (not network by default).
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Golioth Firmware SDK
Default version status: unaffected
0.19.1 to < 0.22.0affected0e788217ab4b61a7c1d9fadd1b4a40f5f538a26dunaffected
pkg:github/golioth/golioth-firmware-sdkReferences
- https://secmate.dev/disclosures/SECMATE-2025-0017 ↗
- https://blog.secmate.dev/posts/golioth-vulnerabilities-disclosure/ ↗
- https://github.com/golioth/golioth-firmware-sdk/releases/tag/v0.22.0 ↗
- https://github.com/golioth/golioth-firmware-sdk/commit/0e788217ab4b61a7c1d9fadd1b4a40f5f538a26d ↗
- https://www.vulncheck.com/advisories/golioth-firmware-sdk-blockwise-transfer-path-out-of-bounds-read ↗