CVE-2026-44318: free5GC's BSF concurrent PUT /nbsf-management/v1/subscriptions/{subId} crashes the BSF process via concurrent map read/write on Subscriptions
free5GC’s BSF PUT /nbsf-management/v1/subscriptions/{subId} handler has an unsynchronized write on the global Subscriptions map. The handler first reads the map under RLock() via BSFContext.GetSubscription(subId), but if the subscription does not exist, ReplaceIndividualSubcription() writes back to the same map directly without taking the mutex (bsfContext.BsfSelf.Subscriptions[subId] = subscription). Under concurrent authenticated PUT load, one goroutine can read while another writes the map, which causes the Go runtime to abort the process with fatal error: concurrent map read and map write (Go runtime panics that come from concurrent map access bypass recover() and terminate the process). The BSF container exits with code 2 – the entire BSF SBI surface goes down until restart.
This endpoint requires a valid nbsf-management OAuth2 access token (PR:L, NOT PR:N), so this is scored as an authenticated process-kill DoS.
References
- github.com/advisories/GHSA-27ph-8q4f-h7m7
- github.com/free5gc/bsf/commit/277908565fd628d974a13ef562b81a8b7b519ffa
- github.com/free5gc/bsf/pull/7
- github.com/free5gc/free5gc
- github.com/free5gc/free5gc/issues/926
- github.com/free5gc/free5gc/security/advisories/GHSA-27ph-8q4f-h7m7
- nvd.nist.gov/vuln/detail/CVE-2026-44318
Code Behaviors & Features
Detect and mitigate CVE-2026-44318 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 →