◆ CVE Hub

CVE-2026-98952

pfcp: make sure the SEID is linear before reading it

Published
2026-10-23
Last modified
2026-10-24
CNA
Linux
NVD status
Received

Fetching some sources has been requested. Reload in about a minute to see them.

CVSS v3.1 (listed by NVD)
7.3
HIGH
Scored by Linux (not yet scored by NVD)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
CVSS v4.0 (listed by NVD)
—
Not scored
CVSS (listed by CVE.org)
7.3
HIGH
Scored by CNA (Linux) · v3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
EPSS exploit probability
0.2%
Percentile 10.5%
as of 2026-10-24
CISA KEV
—
Not listed

Attack conditions and impact

Derived from the CNA (via NVD) CVSS 3.1 vector
NetworkNo authNo interaction Confidentiality LIntegrity LAvailability L

This vulnerability may be exploitable over the internet without authentication or user interaction.

MetricValueMeaning
Attack vector AVNNetwork
Attack complexity ACLLow (easy)
Privileges required PRNNone
User interaction UINNone
Scope SUUnchanged
Confidentiality CLLow
Integrity ILLow
Availability ALLow
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L

Description

NVD

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.

CVSS assessments

ProviderVersionScoreVector
NVD / 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary)3.17.3 HIGHCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
CNA / Linux3.17.3 HIGHCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L

Affected products and packages

CNA (CVE.org)

VendorProductVersions
LinuxLinux
affected: 6dd514f48110ebb4bf36875b9e7e02d07b589caa … < 3192a5e398c64d48aad64a09e29643e327369bc4
affected: 6dd514f48110ebb4bf36875b9e7e02d07b589caa … < b18a6496495495e2dc27e525aa3315a0c59b9513
affected: 6dd514f48110ebb4bf36875b9e7e02d07b589caa … < 2fb6d05f706d79bbdc88835be2f4f45ab56dd819
affected: 6dd514f48110ebb4bf36875b9e7e02d07b589caa … < 23609bce9e1de525d1d0e73fc68c6e7971d0b49e
default: unaffected
LinuxLinux
affected: 6.10
unaffected: 0 … < 6.10
unaffected: 6.12.113 … <= 6.12.*
unaffected: 6.18.57 … <= 6.18.*
unaffected: 7.2.11 … <= 7.2.*
unaffected: 7.3 … <= *
default: affected

Open-source packages (GitHub Advisory / OSV)

pfcp: make sure the SEID is linear before reading it

EcosystemPackageAffected versionsFixed in
>= 6dd514f48110ebb4bf36875b9e7e02d07b589caa, < 3192a5e398c64d48aad64a09e29643e327369bc4; < b18a6496495495e2dc27e525aa3315a0c59b9513; < 2fb6d05f706d79bbdc88835be2f4f45ab56dd819; < 23609bce9e1de525d1d0e73fc68c6e7971d0b49e3192a5e398c64d48aad64a09e29643e327369bc4, b18a6496495495e2dc27e525aa3315a0c59b9513, 2fb6d05f706d79bbdc88835be2f4f45ab56dd819, 23609bce9e1de525d1d0e73fc68c6e7971d0b49e
LinuxKernel>= 6.10.0, < 6.12.113; >= 6.13.0, < 6.18.57; >= 6.19.0, < 7.2.116.12.113, 6.18.57, 7.2.11

Linux distribution status

Red Hat ↗ Fetching

Debian ↗

ReleasePackageStatusFixed version / notes
bookwormlinuxnot-affected unimportant
forkylinuxresolved not yet assigned7.2.11-1
sidlinuxresolved not yet assigned7.2.11-1
trixielinuxresolved not yet assigned6.12.113-1

Ubuntu ↗ Fetching

References (7)