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).
Problem types
CWE-170: Improper Null Termination
Product status
0.19.1 (semver) before 0.22.0
commit 0e788217 (custom)
Credits
SecMate (https://secmate.dev)
References
secmate.dev/disclosures/SECMATE-2025-0017
github.com/golioth/golioth-firmware-sdk/releases/tag/v0.22.0
github.com/...ommit/0e788217ab4b61a7c1d9fadd1b4a40f5f538a26d
www.vulncheck.com/...ckwise-transfer-path-out-of-bounds-read