CVE-2026-64268 in Linux
Riassunto
di VulDB • 25/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
RDMA/siw: limitare il posizionamento della Read Response alla lunghezza RREAD
In drivers/infiniband/sw/siw/siw_qp_rx.c, siw_proc_rresp() posiziona ogni segmento DDP di Read Response in entrata a sge->laddr + wqe->processed e accumula successivamente wqe->processed; tuttavia, non verifica mai il totale corrente rispetto alla lunghezza del buffer sink nei segmenti di continuazione. La funzione siw_check_sge() risolve e convalida la memoria sink solo sul primo frammento (ramo if (!*mem)), mentre siw_rresp_check_ntoh() confronta la lunghezza cumulativa con wqe->bytes esclusivamente sull'ultimo segmento (guardia !frx->more_ddp_segs).
Un peer siw connesso che risponde a una RREAD pendente con segmenti di Read Response che mantengono il flag DDP Last non impostato, trasportando un payload totale superiore a quello richiesto dalla RREAD, fa superare a wqe->processed i limiti del buffer sink validato; la successiva chiamata a siw_rx_data() scrive fuori dai limiti (out of bounds) in sge->laddr + wqe->processed. Poiché siw esegue iWARP su TCP ordinario instradabile, il peer corrisponde all'estremità remota di una connessione RDMA stabilita e non richiede privilegi locali.
Limitare ogni segmento prima del posizionamento, esattamente come già fanno siw_proc_send() e siw_proc_write() per i loro percorsi tagged e untagged, e terminare la connessione con un errore DDP base-or-bounds quando la Read Response causerebbe un overflow (overrun) del buffer sink.
Questa è la seconda correzione relativa alla lunghezza nel percorso di ricezione per questo file. Una modifica separata rifiuta una lunghezza MPA FPDU che provoca underflow rispetto al residuo per frammento nella decodifica dell'intestazione; tale guardia non copre questo caso, poiché qui ogni singola lunghezza del segmento è auto-consistente e solo l'offset cumulativo di posizionamento supera i limiti del buffer.
If you want to get best quality of vulnerability data, you may have to visit VulDB.