CVE-2026-13217 in Zephyrinformazioni

Riassunto

di VulDB • 25/08/2026

Il client OCPP 1.6 in subsys/net/lib/ocpp/ocpp.c ricostruisce un handle di sessione e l'ID PDU dal campo uid di un messaggio CALLRESULT. In ocpp_process_server_msg() il codice chiama atoi(strtok_r(uid, "-", &tmp)) senza verificare il valore restituito da strtok_r. Quando il server fornisce un uid vuoto o privo del delimiter '-', strtok_r() restituisce NULL e atoi(NULL) dereferenzia un puntatore nullo, comportando un comportamento indefinito (undefined behaviour).

L'uid origina dai dati di rete: parse_rpc_msg() in subsys/net/lib/ocpp/ocpp_j.c effettua il parsing JSON di un frame ricevuto dal sistema centrale OCPP tramite TCP/WebSocket e copia la stringa controllata dal server nel buffer locale. Un sistema centrale malevolo o compromesso, oppure un man-in-the-middle su una connessione ws:// non TLS, può restituire un uid malformato per sfruttare questa vulnerabilità. Non è richiesta alcuna autenticazione oltre alla connessione al server esistente (o alla posizione MITM), e il puntatore ricostruito viene convalidato come appartenenza a una sessione da ocpp_session_is_valid(), quindi l'impatto si limita alla dereferenziazione di NULL piuttosto che all'uso arbitrario del puntatore.

Sui target Zephyr che intercettano gli accessi all'indirizzo 0 (piattaforme MMU/MPU o con CONFIG_NULL_POINTER_EXCEPTION_DETECTION abilitato), la dereferenziazione causa un fault nel thread lettore OCPP e invoca il gestore di errore fatale, provocando una denial of service (DoS) remota del charge point; sui target bare metal dove l'indirizzo 0 è leggibile, la chiamata restituisce 0 ed è benigna, quindi l'impatto riguarda solo la disponibilità ed è condizionale alla piattaforma.

La correzione applicata protegge solo il primo atoi(); il secondo strtok_r(NULL, "-", &tmp) seguito da pdu = atoi(buf) nella stessa funzione rimane non protetto e la identica dereferenziazione di NULL è ancora raggiungibile dallo stesso input di rete quando l'uid ha un primo token ma nessun secondo token delimitato. Una correzione completa dovrebbe convalidare anche il secondo token.

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

Responsabile

Zephyr

Prenotare

24/06/2026

Divulgazione

25/08/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Do you know our Splunk app?

Download it now for free!