No kernel Linux, a seguinte vulnerabilidade foi resolvida. nvme- multipath: corrigir o tamanho do array flex no struct nvme_ns_head struct nvme_ns_head contém um membro flexível do array, current_path[], que é indexado usando o ID do nó NUMA: head->current_path[numa_node_id()].

A estrutura é alocada como: tamanho = tamanho de (struct nvme_ns_head) + (num_possible_ nodes() * tamanho de (struct nvme_ns *)); cabeça = kzalloc(tamanho, GFP_KERNEL); Esta alocação assume que os IDs de nó NUMA são sequenciales e densamente empacotados a partir de 0.. num_possible_nodes() - 1. Embora esta suposição seja válida em muitos sistemas, nem sempre é verdade em algumas arquiteturas, como powerpc.

Em alguns sistemas powerpc, os IDs de nó NUMA podem ser escassos. Por exemplo: NUMA: NUMA( s) nó( s): 6 Nó NUMA 0 CPU( s): 80 - 159 Nó NUMA 8 CPU( s): 0 - 79 Nó NUMA 252 CPU( s): nó NUMA 253 CPU( s): nó NUMA 254 CPU( s): nó NUMA 255 CPU( s): Ou seja, os IDs de nó possível/online do NUMA são: 0, 8, 252, 253, 254, 255 Neste caso: num_possible_nodes() = 6.

Então a memória é alocada apenas para 6 Ingressos no percurso_corrente[]. No entanto, o array é indexado mais tarde usando o ID do nó NUMA real. Como resultado, acessórios como: head->current_path[ 8 ] ou cabeça->corrente_caminho[ 252 ] sai dos limites, levando ao seguinte splat KASAN: ======================================================================= ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== ===== 0 x 22 c/ 0 x 290 [nvme_core] Escrever o tamanho 8 no addr c 00020003 bda 35 b 8 por tarefa kworker/u 641: 2 / 1997.

CPU: 1 UID: 0 PID: 1997 Comunicação: kworker/u 641: 2 Não manchado 7.1.0 -rc 5 - Sujo # 14 Nome do hardware PREEMPT(lazy): 8335 - PODERO GTE 9 0 x 4 e 1202 opal: skiboot- v 6.5.3 - 35 - g 1851 b 2 a 06 PowerNV Workqueue: async async_run_entry_fn Chamada de rastreio: [c 000200037 Fa 7510 ] [c 0000000021 c 23 d 4 ] dump_stack_lvl+ 0 x 88 / 0 xdc (inconfiável) [c 000200037 Fa 7540 ] [c 0000000009 fda 90 ] print_report+ 0 x 22 c/ 0 x 67 c [c 000200037 Fa 7630 ] [c 0000000009 fd 508 ] kasan_report+ 0 x 108 / 0 x 220 [c] 000200037 Fa 7740 ] [c 0000000009 fff 48 ] _asan_store 8 + 0 xe 8 / 0 x 120 [c] 000200037 Fa 7760 ] [c 008000018 e 76474 ] nvme_mpat_revalidate_paths+ 0 x 22 c/ 0 x 290 [nvme_core] [c 000200037 Fa 7800 ] [c 008000018 e 6556 c] nvme_update_ns_info+ 0 x 4 a 4 / 0 x 5 e 0 [nvme_core] [c 000200037 Fa 7 a 50 ] [c 008000018 e 66270 ] nvme_alloc_ns+ 0 x 6 d 8 / 0 x 1 a 70 [nvme_core] [c 000200037 Fa 7 c 20 ] [c 008000018 e 679 fc] nvme_scan_ns+ 0 x 3 f 4 / 0 x 630 [nvme_core] [c 000200037 Fa 7 d 10 ] [c 00000000031 f 22 c] async_run_entry_fn+ 0 x 9 c/ 0 x 3 a 0 [c] 000200037 Fa 7 db 0 ] [c 0000000002 Fa 544 ] processo_one_work+ 0 x 414 / 0 xa 10 [c] 000200037 Fa 7 ec 0 ] [c 0000000002 fbf 00 ] worker_thread+ 0 x 320 / 0 x 640 [c] 000200037 Fa 7 f 80 ] [c 00000000030 d 0 f 8 ] kthread+ 0 x 278 / 0 x 290 [c] 000200037 Fa 7 fe 0 ] [c 00000000000 ded 8 ] inicializar_kernel_thread+ 0 x 14 / 0 x 18 Alocado por tarefa 1997 no cpu 1 em 35.928317 s. O endereço de buggy pertence ao objeto no c 00020003 bda 3000 que pertence ao cache kmalloc- rnd- 15 - 2 K de tamanho 2048 O endereço de buggy está localizado 16 bytes à direita da alocação 1448 -byte região [c 00020003 bda 3000, c 00020003 bda 35 a 8 ).

O endereço de buggy pertence à página física. Estado de memória em torno do endereço de buggy: c 00020003 bda 3480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c 00020003 bda 3500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > c 00020003 bda 3580: 00 00 00 00 00 fc fc fc fc fc fc fc fc fc fc fc ^ c 00020003 bda 3600 Fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc 00020003 bda 3680 ======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== Corrija isso alocando o array flexível usando o nr_node_ids em vez do num_possible_nodes(). Como nr_ node_ids representa o máximo possível de IDs de nó NUMA, indexar current_path[] usando numa_ node_id() torna- se seguro mesmo em sistemas com IDs de nó esparsos.

Registro de aconselhamento: GHSA-hggw-gjv 7 - 4223. Identificadores relacionados: CVE- 2026 - 74384. Tempo: GitHub Advisory Database publicou este registro em 2026 - 08 - 15 T 06: 32: 32.000 Z e lista a sua última modificação como 2026 - 08 - 17 T 06: 33: 42.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 9 suporte de referências nestes tipos: AVISO, WEB.