CVE-2026-10672
Buffer URI non terminato causa lettura fuori dai limiti nel pull del firmware LwM2M (Package URI)
- Pubblicato
- 14 lug 2026
- Aggiornato
- 14 lug 2026
- Assegnazione CNA
- zephyr
- Evidenza osservata
- 17 ago 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:HBasso · prossimi 30 giorni
- Percentile
- 34,5%
- Data del modello
- 21 set 2026
L'EPSS è una stima statistica, non una certezza o una misura di impatto. Combinalo con CVSS, stato KEV, esposizione e ambiente.
Riepilogo
subsys/net/lib/lwm2m/lwm2m_pull_context.c copiava l'URI del pacchetto dell'aggiornamento firmware in un buffer statico fisso (context.uri, dimensione CONFIG_LWM2M_SWMGMT_PACKAGE_URI_LEN, default 128) con memcpy(context.uri, uri, LWM2M_PACKAGE_URI_LEN), copiando esattamente la dimensione di destinazione senza alcuna validazione della lunghezza. L'oggetto Firmware-Update memorizza l'URI del pacchetto fornito dal server (/5/0/1) in un buffer di 255 byte, quindi un server di gestione LwM2M (o un attaccante on-path su una sessione priva di DTLS robusto) può SCRIVERE un URI di 128-254 caratteri; solo i primi 128 byte vengono poi copiati in context.uri senza terminatore NUL. Quel buffer viene successivamente consumato come stringa C da http_parser_parse_url(context.uri, strlen(context.uri), ...), dagli append di opzioni CoAP URI-path/PROXY-URI basati su strlen e da lwm2m_parse_peerinfo(), causando una lettura fuori dai limiti della memoria statica adiacente. I byte letti oltre i limiti vengono aggiunti alle richieste CoAP in uscita (divulgazione di informazioni sulla memoria adiacente del dispositivo al server/proxy) e possono causare il crash del dispositivo (denial of service). La copia vulnerabile è stata introdotta dal refactor del pull-context (rilasciato per la prima volta in v3.0.0) ed è presente fino alla v4.4.0; il percorso CONFIG_LWM2M_FIRMWARE_UPDATE_PULL_SUPPORT, attivo per impostazione predefinita, è interessato. La correzione aggiunge un controllo strlen(uri) >= sizeof(context.uri) che restituisce -ENOMEM e passa a strcpy(), garantendo un buffer limitato e terminato da NUL.
Fonti
1Exploit proof-of-concept per CVE-2026-10672, una lettura fuori dai limiti nel client pull di aggiornamento firmware LwM2M di Zephyr RTOS. Include una riproduzione C standalone e un server CoAP/LwM2M dannoso per i test.
Utilizzo responsabile
Utilizza le informazioni sulla vulnerabilità solo sui sistemi che possiedi o che sei autorizzato a testare. Kitploit si collega ai metadati della ricerca pubblica e non memorizza codici exploit o payload dannosi.