CVE-2026-64460 in Linux
Riassunto
di VulDB • 26/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
PCI/IOV: Saltare il ripristino del VF Resizable BAR in caso di errore di lettura
sriov_restore_vf_rebar_state() utilizza il registro di controllo del VF Resizable BAR per determinare quanti VF BAR ripristinare (nbars) e quale VF BAR viene indirizzato da ogni iterazione (bar_idx). bar_idx funge da indice per l'array dev->sriov->barsz[], che contiene solo PCI_SRIOV_NUM_BARS (6) elementi.
Quando un dispositivo non risponde, le letture della configurazione restituiscono tipicamente PCI_ERROR_RESPONSE (~0). Entrambi i campi sono larghi 3 bit, quindi nbars e bar_idx valutano entrambi il valore 7. L'accesso a barsz[] avviene quindi fuori dai limiti (out-of-bounds). UBSAN segnala questo errore come:
UBSAN: array-index-out-of-bounds in drivers/pci/iov.c:948:51 index 7 is out of range for type 'resource_size_t [6]'
Il problema è stato osservato su una GPU NVIDIA RTX PRO 1000 (GB207GLM) che ha smesso di rispondere durante un tentativo fallito di uscita dallo stato di alimentazione GC6. La successiva chiamata a pci_restore_state() ha invocato sriov_restore_vf_rebar_state() mentre le letture della configurazione restituivano 0xffffffff, innescando il crash (splat).
Interrompere l'esecuzione se qualsiasi lettura del registro di controllo VF Resizable BAR restituisce PCI_ERROR_RESPONSE. Nessun ulteriore VF BAR viene modificato, operazione sicura poiché una lettura della configurazione che restituisce PCI_ERROR_RESPONSE indica che il dispositivo è irraggiungibile e il ripristino è privo di senso. Questo comportamento rispecchia la protezione presente in pci_restore_rebar_state().
VulDB is the best source for vulnerability data and more expert information about this specific topic.