No kernel Linux, a seguinte vulnerabilidade foi resolvida. rede/mlx 5 e: xsk: corrigir a escrita desbloqueada para o ICOSQ Durante a pesquisa de napi, quando a afinidade muda e ainda há trabalho do XSK a ser feito, ativamos uma interrupção do ICOSQ no novo CPU. No entanto, este acionamento no ICOSQ é feito desprotegido.

Existem 2 tais corridas. A) mlx 5 e_trigger_irq() é chamado enquanto mlx 5 e_xsk_alloc_rx_mpwqe() está executando a partir de uma CPU diferente devido à mudança de afinidade. Isso pode acontecer porque o ativamento do IRQ é feito após napi_complete_done(). Neste ponto, o NAP pode ser agendado em uma CPU diferente. Assim: CPU A (velha afinidade, cauda de NAP) CPU B (nova afinidade, fresca NAP) -------------------------------------------------------------- Napi_complete_done() elimina SCHED mlx 5 e_cq_arm(...) napi_schedule_prep() define SCHED mlx 5 e_napi_poll() mlx 5 e_xsk_alloc_rx_mpwqe() mlx 5 e_icosq_sync_lock() // noop mencpy 640 B UMR corpo avança sq->pc por 10 mlx 5 e_trigger_irq(&c->icosq) wqe_info[pi] = {NOP, 1 } mlx 5 e_post_nop() avança sq->pc.

B) mlx 5 e_trigger_irq() é chamado no ICOSQ quando mlx 5 e_trigger_napi_icosq() está em execução. A solução óbvia seria bloquear o ICOSQ. Mas o ICOSQ tem um esquema de bloqueio otimizado que não funciona neste cenário. Chute o ICOSQ async em vez disso, que está sempre bloqueado.

Este problema foi notado no wild com a seguinte lança. netdevice: ge- 0 - 0 - 1: OP ruim no ICOSQ CQE: 0 ATENÇÃO xd: drivers/net/ethernet/mellanox/mlx 5 /core/ en_rx.c: 826 [...] [...] Traça de chamadas: mlx 5 e_napi_poll+ 0 x 11 d/ 0 x 7 f 0 [mlx 5 _core] __napi_poll+ 0 x 30 / 0 x 200? skb_defer_free_flush+ 0 x 9 c/ 0 xc 0 net_rx_action+ 0 x 2 Fe/ 0 x 3 f 0 handle_softirqs+ 0 xd 8 / 0 x 340 __irq_exit_rcu+ 0 xbc/ 0 xe 0 comum_interrompendo+ 0 x 85 / 0 xa 0 asm_common_interrupt+ 0 x 26 / 0 x 40 [...] ---[ traço final 0000000000000000 ]--- mlx 5 _core 0000: 08: 00.0 Ge- 0 - 0 - 1 Erro no cqn 0 x 548, ci 0 x 2022, qn 0 x 8 f 4, opcode 0 xd, síndrome 0 x 2, síndrome de fornecedor 0 x 68 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000030: 00 00 00 00 01 00 68 02 01 00 08 f 4 de 14 59 d 2 DUMP WQE: tamanho WQ 16384 Tamanho do cur do WQ 0, índice WQE 0 x 1 e 14, len: 64 00000000: 00 00 00 01 d 9 ed 80 02 00 00 00 01 d 9 ed 90 02 00000010: 00 00 00 01 d 9 ed a 0 02 00 00 00 01 d 9 ed b 0 02 00000020: 00 00 00 01 d 9 ed c 0 02 00 00 00 01 d 9 ed d 0 02 00000030: 00 00 00 01 d 9 e 0 02 00 00 00 01 d 9 f 0 02 mlx 5 _core 0000: 08: 00.0 Ge- 0 - 0 - 1 Erro no cqn 0 x 548, ci 0 x 2023, qn 0 x 8 f 4, opcode 0 xd, síndrome 0 x 5, síndrome de fornecedor 0 xf 9 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00000030: 00 00 00 00 01 00 f 9 05 01 00 08 f 4 de 15 cf d 2 Registro de aconselhamento: GHSA- p 5 xx- 69 g 5 - 8564. Identificadores relacionados: CVE- 2026 - 64210.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 24 T 18: 31: 26.000 Z e lista a sua última modificação como 2026 - 07 - 27 T 06: 30: 30.000 Z.

Severidade: ALTAMENTE. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:L/PR:N/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 3 suporte de referências nestes tipos: AVISO, WEB.