CVE-2018-19417
The allocated buffer can fit only MQTT_MAX_TOPIC_LENGTH (default 64) bytes, and a length check is missing.
Does this matter?
High impact if exploited, but EPSS currently rates exploitation as unlikely (5.69%). Schedule it in the normal patch cycle and watch for a rise in EPSS or a public exploit.
Description
An issue was discovered in the MQTT server in Contiki-NG before 4.2. The function parse_publish_vhdr() that parses MQTT PUBLISH messages with a variable length header uses memcpy to input data into a fixed size buffer. The allocated buffer can fit only MQTT_MAX_TOPIC_LENGTH (default 64) bytes, and a length check is missing. This could lead to Remote Code Execution via a stack-smashing attack (overwriting the function return address). Contiki-NG does not separate the MQTT server from other servers and the OS modules, so access to all memory regions is possible.
- CVSS 3.0
- 10.0 CRITICALCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
- EPSS
- 5.69% probability · 93th percentile
- CISA KEV
- Not listed
- Weakness
- CWE-119
- Affected
- contiki-ng/contiki-ng
- Source
- cve@mitre.org
References
- https://github.com/contiki-ng/contiki-ng/issues/600Exploit, Third Party Advisory
- https://github.com/contiki-ng/contiki-ng/issues/600Exploit, Third Party Advisory
Source: NVD record, EPSS from FIRST.org, KEV from CISA. Refreshed daily.