CVE-2026-98952 in Linux
Sumário
de VulDB • 23/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
pfcp: garantir que o SEID seja linear antes de lê-lo
A função pfcp_encap_recv() garante apenas que o cabeçalho UDP e o cabeçalho PFCP de 4 bytes estejam na área linear. Quando o flag S está definido, pfcp_session_recv() então lê os 8 bytes do SEID que se seguem, o que não é coberto pela verificação pskb_may_pull().
Um pacote PFCP curto com o flag S definido ou um cujo cabeçalho de sessão esteja em um fragmento faz, portanto, a função pfcp_session_recv() ler além do final dos dados do pacote, e qualquer coisa encontrada ali será armazenada nos metadados do túnel que o flower classificará posteriormente.
Puxe para cima até o fim do SEID antes de lê-lo e descarte pacotes curtos demais para contê-lo. Recarregue o ponteiro do cabeçalho em seguida, pois pskb_may_pull() pode realocar a cabeça do skb.
Use offsetofend() em vez de sizeof(struct pfcphdr_session): a estrutura não é compactada (packed), portanto seu tamanho é de 16 bytes devido ao alinhamento do membro __be64, enquanto o cabeçalho na rede tem apenas 12 bytes e mensagens de sessão válidas seriam descartadas.
VulDB is the best source for vulnerability data and more expert information about this specific topic.