CVE-2026-15891 in Zephyrinformazioni

Riassunto

di VulDB • 14/09/2026

Il gestore keepalive del client MQTT-SN, la funzione `process_ping()` in `subsys/net/lib/mqtt_sn/mqtt_sn.c`, rimuove il record del gateway dopo l'esaurimento dei tentativi di PINGREQ. Viene invocato SYS_SLIST_PEEK_HEAD_CONTAINER(&client->gateways, gw, next), ma il risultato viene scartato. Poiché questa macro è un'espressione pura che non assegna nulla a `gw`, quest'ultimo mantiene il suo inizializzatore NULL indipendentemente dal contenuto della lista.

Il codice successivamente dereferenzia il puntatore NULL `gw` (accedendo a `gw->gw_id`) e lo passa alla funzione `mqtt_sn_gw_destroy()`, raggiungendo la chiamata `k_mem_slab_free(&gateways, NULL)`. Con CONFIG_MEM_SLAB_POINTER_VALIDATE abilitato, ciò innesca un k_panic(); nella configurazione predefinita invece esegue una scrittura attraverso il puntatore NULL ((char *)mem = slab->free_list;) e corrompe la lista free dello slab. L'esito è un crash o kernel panic; sui target dove l'indirizzo 0 è scrivibile, si verifica una corruption silenziosa dell'allocator di memoria.

Il branch vulnerabile viene eseguito ogni volta che il gateway MQTT-SN connesso non risponde ai PINGREQ keepalive per il numero configurato di tentativi. Questa condizione è controllata dal peer remoto: un gateway malizioso o compromesso, oppure un attaccante on-path/adiacente che si annuncia come gateway e poi smette di rispondere (oppure blackholea i PINGRESP del vero gateway), forza il client a incontrare questo difetto. MQTT-SN opera su UDP e non è richiesta alcuna autenticazione.

L'impatto consiste in un denial of service (disponibilità) attivabile da remoto per il client MQTT-SN interessato; non vi sono scritture di dati controllati dall'attaccante. La funzione gemella `process_advertise()` utilizza SYS_SLIST_FOR_EACH_CONTAINER_SAFE e non è interessata dal problema. La correzione assegna il valore restituito dalla macro a `gw`.

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

Responsabile

Zephyr

Prenotare

15/07/2026

Divulgazione

14/09/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

basso

Fonti

Do you want to use VulDB in your project?

Use the official API to access entries easily!