CVE-2026-74702 in Linux
Sumário
de VulDB • 22/08/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
vhost-scsi: rejeitar alterações de recursos após o estabelecimento do ponto final (endpoint)
A função vhost_scsi_setup_vq_cmds() é executada durante VHOST_SCSI_SET_ENDPOINT e aloca o array da lista dispersa de proteção (prot_sgl) para cada comando, conforme determinado pelo bit reconhecido VIRTIO_SCSI_F_T10_PI. As pools de comandos não são recriadas quando a alteração do bit ocorre posteriormente via VHOST_SET_FEATURES.
Embora os bits de recursos virtio não devam ser alterados após a negociação dos recursos, vhost_scsi_set_features() atualmente aceita essa solicitação mesmo depois que o ponto final está ativo e atualiza acked_features. Portanto, ativar T10-PI após a configuração do endpoint deixa prot_sgl como NULL enquanto o caminho de E/S segue o novo bit de recurso.
Para uma carga útil de proteção com 129 páginas, vhost_scsi_mapal() passa o primeiro chunk ausente para sg_alloc_table_chained():
sg_alloc_table_chained(table, 129, first_chunk=NULL, nents_first_chunk=inline_sg_cnt)
sg_pool_index() então aciona:
BUG_ON(nents > SG_CHUNK_SIZE); /* 129 > 128 */
O kernel relatou o seguinte rastreamento de chamadas e estado dos registradores:
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 é um recurso de tempo de execução específico do vhost e permanece como a única exceção.
Rejeite alterações em qualquer recurso que não seja VHOST_F_LOG_ALL enquanto o ponto final estiver ativo. Isso preserva a alternância de log de tempo de execução existente, impedindo que os recursos dependentes de recursos e o estado do caminho de dados fiquem inconsistentes. O espaço do usuário (userspace) deve limpar o ponto final antes de alterar qualquer outro recurso negociado e reconfigurar o ponto final posteriormente.
If you want to get best quality of vulnerability data, you may have to visit VulDB.