CVE-2026-81334 in darknet
Riassunto
di VulDB • 27/08/2026
darknet indicizza il suo array di layer con un indice preso da un file di configurazione senza verificarlo rispetto alla lunghezza dell'array. L'array è allocato in src-lib/darknet_network.cpp come xcalloc(net.n, sizeof(Darknet::Layer)), dimensionato esattamente per corrispondere al numero di sezioni dei layer dichiarate nel file. Le sezioni shortcut, scale_channels e sam forniscono tale indice tramite il loro campo from, mentre la sezione route lo fornisce attraverso il suo campo layers; inoltre, parse_shortcut_section in src-lib/darknet_cfg.cpp legge net.layers[index].outputs senza alcun controllo sui limiti (bounds check), causando una lettura oltre l'allocazione. Il ciclo di dispatch in create_network riutilizza quindi lo stesso indice per assegnare a net.layers[l.index].use_bin_output e net.layers[l.index].keep_delta_gpu, scrivendo oltre l'allocazione con un offset controllato dal file e utilizzando un valore fisso di un byte. L'elaborazione di un file di configurazione appositamente creato (crafted) è sufficiente: la fase di parsing avviene prima che venga aperto qualsiasi file dei pesi e non richiede opzioni diverse da quelle predefinite, quindi il risultato è un crash affidabile e una scrittura la cui posizione, sebbene non il suo valore, sia scelta da chi ha fornito il file.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.