All vulnerabilities
CVE-2026-98952

Linux: pfcp: make sure the SEID is linear before reading it

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in3192a5e398c64d48aad64a09e29643e327369bc4Also 2fb6d05f706d79bbdc88835be2f4f45ab56dd819, 23609bce9e1de525d1d0e73fc68c6e7971d0b49eCVE List
Published23 Oct 2026Updated 23 Oct 2026CVE List

What fixes it

  • 3192a5e398c64d48aad64a09e29643e327369bc4LinuxCVE List
  • 2fb6d05f706d79bbdc88835be2f4f45ab56dd819LinuxCVE List
  • 23609bce9e1de525d1d0e73fc68c6e7971d0b49eLinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

In the Linux kernel, the following vulnerability has been resolved:

pfcp: make sure the SEID is linear before reading it

pfcp_encap_recv() only makes sure that the UDP header and the 4 byte PFCP header are in the linear area. When the S flag is set, pfcp_session_recv() then reads the 8 byte SEID that follows, which is not covered by the pskb_may_pull() check.

A short PFCP packet with the S flag set, or one whose session header lies in a fragment, therefore makes pfcp_session_recv() read beyond the end of the packet data, and whatever it finds there is stored in the tunnel metadata that flower later classifies on.

Pull up to the end of the SEID before reading it, and drop packets that are too short to contain it. Reload the header pointer afterwards since pskb_may_pull() may reallocate the skb head.

Use offsetofend() rather than sizeof(struct pfcphdr_session): the structure is not packed, so its size is 16 bytes because of the alignment of the __be64 member, while the header on the wire is only 12 bytes, and valid session messages would be dropped.

Text from CVE List

Affected versions 10

  • Linuxaffected: 6dd514f48110ebb4bf36875b9e7e02d07b589caa before 3192a5e398c64d48aad64a09e29643e327369bc4CVE List
  • Linuxaffected: 6dd514f48110ebb4bf36875b9e7e02d07b589caa before b18a6496495495e2dc27e525aa3315a0c59b9513CVE List
  • Linuxaffected: 6dd514f48110ebb4bf36875b9e7e02d07b589caa before 2fb6d05f706d79bbdc88835be2f4f45ab56dd819CVE List
  • Linuxaffected: 6dd514f48110ebb4bf36875b9e7e02d07b589caa before 23609bce9e1de525d1d0e73fc68c6e7971d0b49eCVE List
  • Linuxaffected: 6.10CVE List
  • Linuxunaffected: all versions before 6.10CVE List
  • Linuxunaffected: 6.12.113 through 6.12.*CVE List
  • Linuxunaffected: 6.18.57 through 6.18.*CVE List
  • Linuxunaffected: 7.2.11 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 4