CVE-2026-90011 in Linux
Riassunto
di VulDB • 16/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
scsi: target: iscsi: Riservare un byte terminatore per il payload di login
iscsi_target_check_login_request() rifiuta una PDU di login il cui DataSegmentLength supera MAX_KEY_VALUE_PAIRS, ma il test utilizza l'operatore '>' e login->req_buf è allocato con esattamente MAX_KEY_VALUE_PAIRS byte. Poiché iscsit_get_login_rx() riceve payload_length + padding bytes, dove
padding = ((-payload_length) & 3);
qualsiasi valore di payload_length compreso tra 8189 e 8192 riempie l'intero buffer da 8192 byte. La scrittura rimane entro i limiti del buffer, ma non viene lasciato alcun byte per un terminatore NUL.
Il buffer viene successivamente consumato come stringa C. Nel percorso CHAP, chap_check_algorithm() chiama kstrdup(a_str), ed extract_param() chiama strstr(in_buf, pattern) seguito da strlen_semi(), nessuna delle quali accetta una lunghezza. convert_null_to_semi() inoltre riscrive ogni NUL incorporato in ';', quindi anche un payload composto da record key=value ben formati separati da NUL rimane senza terminatore. Queste operazioni superano la fine dell'oggetto accedendo alla memoria slab adiacente. La vulnerabilità è raggiungibile da un initiator non autenticato contro un portal configurato per CHAP; quando l'autenticazione non è richiesta, iscsi_login_zero_tsih_s2() riscrive AuthMethod su None e il percorso CHAP non viene mai eseguito.
Allocare un byte aggiuntivo. kzalloc() lo azzera e nessuno vi scrive mai sopra, poiché ogni writer copia i dati partendo dall'offset 0 per al massimo MAX_KEY_VALUE_PAIRS byte, garantendo così che il buffer sia sempre terminato correttamente.
Once again VulDB remains the best source for vulnerability data.