CVE-2026-44317: free5GC's PCF npcf-policyauthorization POST /app-sessions panics on suppFeat=1 with missing AfRoutReq via nil pointer dereference
free5GC’s PCF POST /npcf-policyauthorization/v1/app-sessions handler panics on a single authenticated request whose ascReqData.suppFeat == "1" (enabling traffic-routing feature negotiation) and whose medComponents entries supply an afAppId but NO AfRoutReq. The create path then calls provisioningOfTrafficRoutingInfo(smPolicy, appID, routeReq, ...) with routeReq == nil and dereferences routeReq.RouteToLocs (and other fields) without a nil check, causing runtime error: invalid memory address or nil pointer dereference. Gin recovery converts the panic into HTTP 500.
The trigger is a single valid authenticated request – changing only suppFeat from "0" to "1" flips the same shape of POST from a normal 201 Created into a panic-driven 500.
This endpoint requires a valid npcf-policyauthorization OAuth2 access token (PR:L). The PCF process is not killed (Gin recovers); the realized impact is per-request panic-DoS on the app-session create path.
References
- github.com/advisories/GHSA-wwqh-7jm5-gj7w
- github.com/free5gc/free5gc
- github.com/free5gc/free5gc/issues/879
- github.com/free5gc/free5gc/security/advisories/GHSA-wwqh-7jm5-gj7w
- github.com/free5gc/pcf/commit/508d70b8527a6c8c923179dad450ea01e16b6aeb
- github.com/free5gc/pcf/pull/65
- nvd.nist.gov/vuln/detail/CVE-2026-44317
Code Behaviors & Features
Detect and mitigate CVE-2026-44317 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →