CVE-2026-5857
Contiki-NG's MQTT client parsepublishvhdr() in os/net/app-layer/mqtt/mqtt.c sets topiclenreceived=1 before checking topiclen against the 64-byte limit, so an over-length topic returns early but leaves the flag set. On the next TCP segment, tcpinput() re-invokes the parser with topicreceived==0, and the persisted topiclenreceived==1 skips the length-reading block containing the guard, falling through directly to a memcpy() that uses the unvalidated 16-bit topiclen as the copy length. The 65-byte topic[] destination overruns into adjacent struct fields including the payload_chunk pointer, which subsequent MQTT code dereferences, giving a compromised or attacker-controlled broker an arbitrary-pointer-write primitive. Contiki-NG's MQTT implementation has no TLS support so the connection is plaintext. Impact ranges from information disclosure and denial of service to remote code execution on embedded targets without memory protection.
Package Versions Affected
Automatically patch vulnerabilities without upgrading
CVSS Version



Related Resources
References
https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/5xxx/CVE-2026-5857.json, https://nvd.nist.gov/vuln/detail/CVE-2026-5857, https://github.com/contiki-ng/contiki-ng/pull/3163, https://github.com/contiki-ng/contiki-ng/commit/a34a2dbdc8bea784bd2ae5079aa4be520cd74f2d, https://github.com/contiki-ng/contiki-ng, https://y637f9qq2x.com/posts/cve-2026-5857/