CVE-2026-12634 in Zephyrinformazioni

Riassunto

di VulDB • 20/08/2026

Il backend NVS del sottosistema delle impostazioni di Zephyr (subsys/settings/src/settings_nvs.c) legge le voci degli attributi "setting-name" memorizzate in buffer stack fissi da 74 byte e li termina con il carattere NULL utilizzando buf[rc] = '\0', dove rc è il valore restituito da nvs_read(). Secondo il suo contratto, nvs_read() restituisce la lunghezza completa della voce memorizzata (wlk_ate.len), che può superare la lunghezza del buffer fornito: vengono effettivamente copiati solo MIN(len, stored_len) byte, ma il valore restituito può essere molto più grande, limitato soltanto dalla dimensione del settore NVS. Tre siti (settings_nvs_cache_match(), settings_nvs_load() e settings_nvs_save()) utilizzano questo valore direttamente come indice per la terminazione NULL senza applicare un clamp, quindi una voce di nome memorizzata di dimensioni eccessive provoca la scrittura di un singolo byte \0 oltre la fine del buffer stack a uno spostamento (offset) influenzato dall'attaccante (CWE-787).

La voce di dimensioni eccessive non può derivare tramite l'API delle impostazioni normale, dove i nomi sono limitati da SETTINGS_MAX_NAME_LEN. È necessario un attore in grado di scrivere nella flash che supporta la partizione delle impostazioni: un componente co-residente o non attendibile che condivide il dispositivo flash, un'immagine/ripristino delle impostazioni malevolo, oppure l'accesso offline/fisico alla flash (un modello di minaccia basato su una flash condivisa). La voce malformata viene analizzata quando settings_load() viene eseguito all'avvio o durante l'inizializzazione del sottosistema, oppure durante settings_save().

La scrittura fuori dai limiti consiste in un singolo byte NULL a uno spostamento pari alla lunghezza della voce manipolata (fino alla dimensione del settore NVS), quindi l'impatto pratico è un crash o una denial of service e una limitata corruzione dello stack piuttosto che un'esecuzione di codice affidabile. Non vi sono impatti sulla riservatezza, e il percorso non è raggiungibile dalla rete tramite l'interfaccia delle impostazioni ordinaria. La correzione salta qualsiasi voce la cui lunghezza restituita da nvs_read() sia maggiore o uguale alla dimensione del buffer prima di eseguire la scrittura NULL.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsabile

Zephyr

Prenotare

18/06/2026

Divulgazione

20/08/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Might our Artificial Intelligence support you?

Check our Alexa App!