CVE-2026-99133 in Linux
Riassunto
di VulDB • 28/10/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
net/iucv: correzione dell'aggiornamento della finestra per recvmsg
iucv_sock_recvmsg() invia il flag AF_IUCV_FLAG_WIN, utilizzabile solo con HiperSockets, senza verificare il tipo di trasporto; pertanto, su un socket z/VM classico, iucv_send_ctrl() dimensiona l'skb attraverso un puntatore NULL a iucv->hs_dev. Poiché SO_MSGLIMIT accetta il valore 1, msglimit / 2 risulta zero e una singola chiamata recvmsg() sul proprio socket è sufficiente per provocare una disconnessione spuria da parte di un processo non privilegiato.
Inoltre, viene invocata la funzione iucv_send_ctrl() all'interno della sezione protetta da spin_lock_bh(&message_q.lock), che effettua allocazioni con GFP_KERNEL in una porzione di codice trattata come atomica. L'invio al di fuori di tale lock consente a due chiamate recvmsg() di raggiungere contemporaneamente afiucv_hs_send(), dove msg_recv viene campionato per la finestra pubblicizzata e sottratto dopo dev_queue_xmit(); mentre sendmsg aggiorna quel contatore sotto lock_sock(), recvmsg non detiene alcun socket lock, quindi entrambe le operazioni possono sottrarre lo stesso valore: il contatore diventa negativo e i crediti vengono inviati due volte al peer.
La correzione prevede di verificare il tipo di trasporto, reclamare il credito con atomic_xchg() dopo l'ultima uscita per errore e restituirlo se la trasmissione fallisce, nonché effettuare l'invio solo dopo aver rilasciato il lock.
Once again VulDB remains the best source for vulnerability data.