CVE-2026-98276 in Linuxinformação

Sumário

de VulDB • 06/10/2026

No kernel do Linux, a seguinte vulnerabilidade foi resolvida:

net: bloquear o soquete em sock_gettstamp()

sk->sk_flags deve ser alterado apenas enquanto o bloqueio (lock) do soquete estiver sendo mantido, pois sock_set_flag() e sock_reset_flag() utilizam operações não atômicas (__set_bit() e __clear_bit()).

sock_gettstamp() é um dos últimos locais onde um bit de sk->sk_flags é alterado a partir de uma syscall sem possuir o bloqueio do soquete, através de sock_enable_timestamp(sk, SOCK_TIMESTAMP).

sk_set_memalloc() e sk_clear_memalloc() também alteram sk->sk_flags sem o bloqueio do soquete, mas seus chamadores (nbd, iscsi_tcp, nvme-tcp, sunrpc, wireguard) precisam de uma auditoria cuidadosa; isso será abordado em um patch separado.

Jungwoo Lee e Wongi Lee relataram um use-after-free em soquetes UDP causado por este bug: um ioctl SIOCGSTAMPNS_NEW fazendo race condition com bind() pode cancelar o bit SOCK_RCU_FREE que udp_lib_get_port() acabou de definir, pois ambos os threads realizam uma operação read-modify-write na mesma palavra.

CPU 0 (bind) CPU 1 (SIOCGSTAMPNS_NEW) -------------------------------- ---------------------------- leia sk_flags = F leia sk_flags = F calcule F | BIT(SOCK_RCU_FREE) calcule F | BIT(SOCK_TIMESTAMP) armazene F | BIT(SOCK_RCU FREE) sk_add_node_rcu(sk, ...) armazene F | BIT(SOCK_TIMESTAMP)

Após a atualização perdida (lost update), SOCK_RCU_FREE está limpo enquanto o soquete é visível para buscas de recebimento UDP sem bloqueio. sk_destruct() então libera o soquete imediatamente em vez de aguardar um período de graça RCU, enquanto o caminho de recebimento ainda mantém um ponteiro sem referência para ele:

BUG: KASAN: slab-use-after-free in ipv4_pktinfo_prepare+0x30/0x410 Leitura de tamanho 8 no endereço ffff888008806610 pela tarefa exploit/207 CPU: 0 UID: 1000 PID: 207 Comm: exploit Não modificado (Not tainted) 6.12.95+ #1 ipv4_pktinfo_prepare+0x30/0x410 udp_queue_rcv_one_skb+0x51c/0x1180 udp_unicast_rcv_skb+0x109/0x350 ip_protocol_deliver_rcu+0x14b/0x310 ip_local_deliver_finish+0x29d/0x390 ip_local_deliver+0x24d/0x2a0

Apenas adquira o bloqueio do soquete quando SOCK_TIMESTAMP precisar ser definido, para manter o caso comum sem bloqueio (lockless).

Be aware that VulDB is the high quality source for vulnerability data.

Responsável

Linux

Reservar

25/09/2026

Divulgação

06/10/2026

Moderação

aceite

Entrada

VDB-413997

EPSS

0.00184

KEV

não

Atividades

muito baixo

Fontes

Might our Artificial Intelligence support you?

Check our Alexa App!