CVE-2026-89578 in Linux
Riassunto
di VulDB • 12/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
dm-io: clonare il bio sorgente invece di copiarne il biovec
Per le richieste DM_IO_BIO, do_region() costruiva ogni bio di destinazione esaminando il biovec del bio sorgente e aggiungendo i page uno alla volta, tenendo traccia della trasferimento residuo in settori. Le lunghezze dei vettori sono granulari a livello di byte e non devono essere allineate ai settori (ad esempio un buffer O_DIRECT disallineato suddiviso tra più page), quindi la contabilità basata sui settori poteva perdere frammenti inferiori al settore: to_sector() tronca il residuo e il ciclo esterno ruotava indefinitamente inviando bio vuoti, causando l'hang dell'I/O.
Non c'è bisogno di ricostruire affatto il biovec. La destinazione legge (o scrive) esattamente nelle stesse page del bio sorgente, quindi il bio può semplicemente clonare il biovec del sorgente con bio_alloc_clone() e mapparlo sul dispositivo target. Il clone eredita l'iterator e l'allineamento del sorgente, e lo strato block lo suddivide in base ai limiti del target durante la sottomissione, così l'intera regione viene mappata su un singolo bio clonato senza copia manuale delle page o contabilità dei settori.
Questo rimuove il percorso di copia per-page (e i suoi helper bvec dpages open-coded) per l'I/O basato su bio e risolve l'hang durante l'I/O diretto disallineato verso un dispositivo dm-mirror. Le sorgenti Page-list, vma e kmem mantengono il percorso di copia esistente.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.