No kernel Linux, a seguinte vulnerabilidade foi resolvida. rede/handshake: Esgote as solicitações pendentes na saída do espaço de nomes da rede Os argumentos para list_splice_init() no handshake_net_exit() são invertidos. A chamada move a lista de "petições" locais vazia para as "hn->hn_requests", deixando a lista local vazia, para que o loop de dreno subsequente execute zero iterações. Os pedidos pendentes de aperto de mão que ainda não tinham sido aceites não são demolidos quando o espaço de nomes da rede é destruído; cada um mantém uma referência em um arquivo de socket e na alocação do aperto de mãos_ req.
Passe o código e destino na ordem documentada (list_splice_init(list, head) move a lista para a cabeça) para que a lista pendente seja transferida para a lista de rastos local e drenada através do aperto de mãos_completo(). A fixação da direção do eclipse expõe uma corrida de corrupção de listas. Depois do eclipse, cada req->hr_list ainda tem ponteiros de link não vazios, roscando a lista de raspadinhos locais em vez de hn_requests. Um aperto de mão concorrente_req_cancel() -- por exemplo, a partir do tempo de tempo TLS do sunrpc em um socket do kernel cuja referência netns não foi tomada -- encontra o pedido através da rhashtable, chama remove_pending(), e vê!list_ vazio(&req->hr_list). __remove_pending_locked() em seguida, list_del_ init()s uma entrada da lista de riscos enquanto o dreno itera, corrompendo- o. A mesma chamada chegando depois do loop de drenagem ter executado list_del() em uma entrada bate LIST_ POISON em vez disso.
Remove_pending() verifique HANDSHAKE_F_NET_DRAINING sob o hn_lock e informe não encontrado quando o dreno está em andamento. O dreno já tomou posse; o teste_e_completo() existente no HANDSHAKE_F_REQ_COMPLETED ainda arbitra entre dreno e cancela para quem chama o hp_done do consumidor. Use list_del_init() em vez de list_del() no dreno para que req->hr_list não carregue LIST_POISON após o dreno liberar a entrada. A guarda DRAINING em remove_pending() faz cancelar o retorno falso, mas cancele ainda cai para test_and_set_bit em HANDSHAKE_F_REQ_COMPLETED e deixa cair a referência hr_file do pedido. Sem outro pin, se essa for a última referência, o sk_ destruct liberta o pedido enquanto ele ainda está ligado na lista local do loop de drenagem. Pinhe o arquivo hr_ de cada pedido em hn_lock antes de liberar a lista, e solte o pin de drenagem depois que o loop terminar com o pedido.
Registro de aconselhamento: GHSA- 2 g 7 m- 7 wmg- 84 j 3. Identificadores relacionados: CVE- 2026 - 63978. Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 19 T 18: 31: 48.000 Z e lista a sua última modificação como 2026 - 08 - 09 T 21: 30: 25.000 Z.
Gravidade: Crítico. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Software afetado: o registro de aconselhamento não fornece um pacote normalizado ou faixa de versões.
Classificação e evidência: nenhum identificador CWE está listado. O registro contém 5 suporte de referências nestes tipos: AVISO, WEB.