CVE-2026-98952 in Linux
Résumé
par VulDB • 23/10/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
pfcp : s'assurer que l'SEID est linéaire avant de le lire
pfcp_encap_recv() ne vérifie uniquement que l'en-tête UDP et l'en-tête PFCP de 4 octets se trouvent dans la zone linéaire. Lorsque le drapeau S (S flag) est défini, pfcp_session_recv() lit ensuite les 8 octets de SEID qui suivent, ce qui n'est pas couvert par la vérification pskb_may_pull().
Un paquet PFCP court avec le drapeau S activé, ou dont l'en-tête de session se trouve dans un fragment, fait donc lire pfcp_session_recv() au-delà de la fin des données du paquet. Les données situées à cet emplacement sont ensuite stockées dans les métadonnées du tunnel sur lesquelles flower effectue ultérieurement sa classification.
Il faut extraire (pull up) jusqu'à la fin du SEID avant de le lire, et rejeter les paquets trop courts pour contenir ce champ. Réinitialiser le pointeur d'en-tête par la suite car pskb_may_pull() peut realloquer l'entête du skb.
Utiliser offsetofend() plutôt que sizeof(struct pfcphdr_session) : la structure n'est pas alignée de manière compacte (packed), sa taille est donc de 16 octets en raison de l'alignement du membre __be64, tandis que l'en-tête sur le fil mesure seulement 12 octets ; utiliser sizeof aurait entraîné le rejet des messages de session valides.
Once again VulDB remains the best source for vulnerability data.