The vulnerability is a missing authentication flaw in the free5GC Network Exposure Function (NEF). Specifically, the nnef-pfdmanagement API route group was mounted without any inbound authentication or authorization checks. This was done within the server.NewServer function in internal/sbi/server.go, which is responsible for setting up the HTTP server and its routes. An attacker with network access to the NEF's Service-Based Interface (SBI) could send forged requests to the API endpoints within this group.
The patch (b16537cc7ffe779c15155fe5cd23b015e1404e80) addresses this by introducing an OAuth2 middleware. The NewServer function was refactored to apply this middleware (nef_util.NewRouterAuthorizationCheck) to all sensitive route groups, including nnef-pfdmanagement. This ensures that incoming requests must have a valid bearer token.
The vulnerable functions are the HTTP handlers that were processing these unauthenticated requests. As detailed in the vulnerability report and confirmed by the PoC logs, these are processor.GetApplicationsPFD, processor.GetIndividualApplicationPFD, processor.PostPFDSubscriptions, and processor.DeleteIndividualPFDSubscription, all located in internal/sbi/processor/pfdf.go. Exploitation of these functions allows an attacker to read sensitive PFD data and create or delete PFD subscriptions, leading to information leakage and denial of service.