CVE-2026-99123 in Linux
Sumário
de VulDB • 28/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
vsock/virtio: validar a origem dos pacotes para soquetes conectados
virtio_transport_recv_pkt() procura os soquetes primeiro pelo tuplo completo de origem e destino, depois apenas pelo destino na tabela vinculada. A opção alternativa é necessária para soquetes em escuta e conexão, mas os soquetes permanecem na tabela vinculada após a chamada connect(), podendo também retornar um soquete que não está em modo de escuta.
A opção alternativa não valida o endereço de origem. No estado TCP_SYN_SENT, uma RESPOSTA proveniente de uma fonte não relacionada pode transicionar o soquete vítima para TCP_ESTABLISHED enquanto seu endereço remoto armazenado permanece inalterado. Pacotes subsequentes RW dessa mesma fonte são entregues através da mesma opção alternativa baseada apenas no destino.
Isso foi reproduzido com processos sem capacidades (capability-empty) sob diferentes UIDs. O atacante descobriu o tuplo alvo por meio do sock_diag AF_VSOCK não privilegiado e fez com que o soquete vítima lesse 16 bytes escolhidos pelo atacante; o soquete peer pretendido leu 0 desses 16 bytes.
Adiciona-se vsock_check_source() para validar o transporte, a porta de origem e o CID de origem em relação ao peer armazenado num soquete não em modo de escuta. O transporte local é uma exceção porque seus pacotes são gerados internamente com VMADDR_CID_LOCAL como sua fonte, incluindo conexões que usam aliases de CID.
Utiliza-se esta função auxiliar após lock_sock() no caminho de recebimento do virtio.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.