No kernel Linux, a seguinte vulnerabilidade foi resolvida. phonet/ pep: desativar o BH em torno do sk_receive_skb() reencaminhado O caminho de receção da rede é executado a partir do contexto softirq, mas os protocolos que tomam o bloqueio do socket podem ter pacotes armazenados no backload e processados posteriormente a partir do contexto do processo. Nesse caso, release_sock() -> __release_sock() deixa cair o slock com spin_unlock_bh() e depois chama sk->sk_backlog_rcv() com metades inferiores ativadas. Os manipuladores sk_backlog_rcv típicos processam o socket cujo atraso está sendo drenado, por isso o estado BH na entrada é irrelevante para os slocks que eles tocam. pep_do_rcv() é diferente: quando o skb de entrada alvo um tubo PEP existente, ele encaminha o skb para um socket *child* diferente via sk_receive_skb(). Esse ajudante leva o slock da criança com bh_lock_sock_nested(), que é apenas spin_lock_nested() e assume que o BH já está desligado. O mesmo slock da criança acaba assim adquirido com BH no (caminho de processo) e com BH desativado (caminho softirq):.

Contexto de processo softirq --------------------- release_sock(lister) __netif_receive_skb() __release_sock() phonet_rcv() spin_unlock_bh() __sk_receive_skb(lister) [BH agora ENABLED] [BH já desabilitado] sk_backlog_rcv: sk_backlog_rcv: pep_do_rcv() pep_do_rcv() sk_receive_skb(child) sk_receive_skb(child) bh_lock_sock_nested(child) bh_lock_nested(child) => SOFTIRQ-ON-W => IN-SOFTIRQ-W O bloqueio indica isso como estado de bloqueio inconsistente, e ele pode se tornar um verdadeiro auto- bloqueio se um softirq no mesmo CPU tentar receber para o mesmo socket infantil enquanto o seu bloqueio é mantido no caminho habilitado para o BH: ATENÇÃO: uso inconsistente do estado de bloqueio {SOFTIRQ- ON- W} -> {IN- SOFTIRQ- W}. (slock- AF_ PHONET/ 1 ){+.?.}-{ 3: 3 }, em: __sk_receive_skb+ 0 x 1 cf/ 0 x 900 __sk_receive_skb net/core/sock.c: 563 sk_receive_skb include/net/sock.h: 2022 [inline] pep_do_rcv net/phonet/pep.c: 675 sk_backlog_rcv include/ net/ sock.h: 1190 __ release_sock net/core/sock.c: 3216 release_sock net/core/sock.c: 3815 pep_sock_ accepta net/ fonet/pep.c: 879.

Envolva o sk_receive_skb() enviado em local_bh_disable() / local_bh_enable() para que o slock da criança seja sempre adquirido com BH desligado. local_bh_disable() ninhos com segurança no caminho softirq. Descoberto através de fuzzing syzkaller internamente; a mesma causa raiz também no linux- 6.1 painel de controle.y syzbot como extid 44 f 0626 dd 6284 f 02663 c. Reproduzida em KASAN + LOCKDEP + PROVE_LOCKING, reprodutor: 3 t 8 xzCR Registro de aconselhamento: GHSA- g 3 fg- 4885 - 2 JHQ. Identificadores relacionados: CVE- 2026 - 64177.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 19 T 18: 31: 54.000 Z e lista a sua última modificação como 2026 - 08 - 13 T 15: 34: 18.000 Z. Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/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 9 suporte de referências nestes tipos: AVISO, WEB.