CVE-2026-74702 in Linuxinformazioni

Riassunto

di VulDB • 22/08/2026

Nel kernel Linux, la seguente vulnerabilità è stata risolta:

vhost-scsi: rifiutare le modifiche alle funzionalità dopo l'attivazione dell'endpoint

La funzione vhost_scsi_setup_vq_cmds() viene eseguita in seguito a VHOST_SCSI_SET_ENDPOINT e alloca l'array della scatterlist di protezione (prot_sgl) per ciascun comando in base al bit VIRTIO_SCSI_F_T10_PI riconosciuto. I pool di comandi non vengono ricostruiti quando VHOST_SET_FEATURES modifica tale bit successivamente.

Sebbene i bit delle funzionalità virtio non debbano cambiare dopo la negoziazione delle funzionalità, vhost_scsi_set_features() accetta attualmente una richiesta del genere dopo che l'endpoint è attivo e aggiorna acked_features. L'abilitazione di T10-PI dopo la configurazione dell'endpoint lascia quindi prot_sgl NULL mentre il percorso I/O segue il nuovo bit della funzionalità.

Per un payload di protezione di 129 pagine, vhost_scsi_mapal() passa il primo chunk mancante a sg_alloc_table_chained():

sg_alloc_table_chained(table, 129, first_chunk=NULL, nents_first_chunk=inline_sg_cnt)

sg_pool_index() quindi incontra:

BUG_ON(nents > SG_CHUNK_SIZE); /* 129 > 128 */

Il kernel ha riportato la seguente traccia di chiamata e lo stato dei registri:

Call Trace: <TASK> ? __sg_alloc_table+0x1d8/0x250 ? __pfx_vhost_run_work_list+0x10/0x10 [vhost]
sg_alloc_table_chained+0x59/0xf0 ? __pfx_sg_pool_alloc+0x10/0x10 ? vhost_scsi_calc_sgls.constprop.0+0x43/0x60 [vhost_scsi]
vhost_scsi_handle_vq+0xf02/0x1700 [vhost_scsi]
? __pfx_vhost_scsi_handle_vq+0x10/0x10 [vhost_scsi]
vhost_scsi_handle_kick+0x37/0x50 [vhost_scsi]
vhost_run_work_list+0x8e/0xd0 [vhost]
vhost_task_fn+0xe1/0x210 ret_from_fork+0x348/0x540 </TASK>

RIP: 0010:0x4 CR2 = 0x4 RSP: 0018:ffffc90000dbf940 EFLAGS: 00010202 RAX: ffffffff82396810 RBX: ffff88811dc28b80 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000820 RDI: 0000000000000081

VHOST_F_LOG_ALL è una funzionalità runtime specifica di vhost e rimane l'unica eccezione.

Rifiutare le modifiche a qualsiasi altra funzionalità diversa da VHOST_F_LOG_ALL mentre l'endpoint è attivo. Questo preserva il toggle del registro runtime esistente impedendo al contempo che le risorse dei comandi dipendenti dalle funzionalità e lo stato del data-path diventino incoerenti. L'user space deve disattivare (clear) l'endpoint prima di modificare qualsiasi altra funzionalità negoziata e riattivarlo successivamente.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsabile

Linux

Prenotare

15/08/2026

Divulgazione

22/08/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

basso

Fonti

Do you want to use VulDB in your project?

Use the official API to access entries easily!