Suse
CVE-2026-40245
HIGH
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Lifecycle Timeline
6DescriptionGitHub Advisory
Summary
An information disclosure vulnerability in the UDR service allows any unauthenticated attacker with access to the 5G Service Based Interface (SBI) to retrieve stored subscriber identifiers (SUPI/IMSI) with a single HTTP GET request requiring no parameters or credentials.
Details
The endpoint GET /nudr-dr/v2/application-data/influenceData/subs-to-notify (defined in 3GPP TS 29.519) requires at least one query parameter (dnns, snssais, supis, or internalGroupIds) to filter results.
In the free5GC UDR implementation, the input validation is present but ineffective because the handler does not return after sending the HTTP 400 error. The request handling flow is:
- The function
HandleApplicationDataInfluenceDataSubsToNotifyGetin./free5gc_4-2-1/free5gc/NFs/udr/internal/sbi/api_datarepository.go(around line 2793) checks whether all ofdnn,snssai,internalGroupId,
and supi are empty.
- If they are all empty, it builds a
problemDetailsstructure and callsc.JSON(http.StatusBadRequest, problemDetails)to send a 400 response, but it does not return afterwards. - Execution continues and the handler still calls
s.Processor().ApplicationDataInfluenceDataSubsToNotifyGetProcedure(c, dnn,snssai, internalGroupId, supi)defined in./free5gc_4-2-1/free5gc/NFs/udr/internal/sbi/processor/influence_data_subscriptions_collection.go. - This processor function queries the data repository and writes the full list of Traffic Influence Subscriptions to the HTTP response body, including
supisfields with SUPI/IMSI values.
As a result, a request without any query parameters produces a response where the HTTP status is 400 Bad Request, but the body contains both the error object and the full subscription list.
The missing return after sending the 400 response in api_datarepository.go is the root cause of this vulnerability.
PoC
No authentication, no prior knowledge of any subscriber identifier required.
curl -v "http://<udr-host>/nudr-dr/v2/application-data/influenceData/subs-to-notify"Response (HTTP 400):
{"status":400,"detail":"At least one of DNNs, S-NSSAIs, Internal Group IDs or SUPIs shall be provided"}
[{"dnns":["internet"],
"snssais":[{"sst":1,"sd":"000001"}],
"supis":["imsi-222777483957498"],
"notificationUri":"http://pcf.../npcf-callback/v1/nudr-notify/influence-data/imsi-222777483957498/1"}]Impact
This is an unauthenticated information disclosure vulnerability. Any attacker with network access to the SBI (Service Based Interface) can enumerate SUPIs (Subscriber Permanent Identifiers / IMSI values) of registered users without any credentials or prior knowledge.
In a 5G network, the SUPI is the most sensitive subscriber identifier - its exposure breaks the privacy guarantees introduced by 3GPP with the SUCI (Subscription Concealed Identifier) mechanism, designed specifically to prevent SUPI tracking over the air. This vulnerability completely undermines that protection at the core network level.
Impacted deployments: any free5GC instance where the SBI is reachable by untrusted parties (e.g., misconfigured network segmentation, rogue NF, or compromised internal host).
Note: an additional trigger exists - sending a malformed snssai parameter also bypasses validation due to a missing return after the deserialization error handler, producing the same information disclosure.
Patch
The vulnerability has been confirmed patched by adding the two missing return statements in NFs/udr/internal/sbi/api_datarepository.go, function HandleApplicationDataInfluenceDataSubsToNotifyGet:
- After the
c.JSON(http.StatusBadRequest, problemDetails)call in thesnssaideserialization error branch. - After the
c.JSON(http.StatusBadRequest, problemDetails)call in the empty parameters validation block.
With the patch applied, a request without any query parameters now correctly returns HTTP 400 with only the error message, and no subscriber data is included in the response body.
The fix has been verified: after applying the patch and recompiling the UDR, the endpoint GET /nudr-dr/v2/application-data/influenceData/subs-to-notify returns HTTP 400 with only:
{"status":400,"detail":"At least one of DNNs, S-NSSAIs, Internal Group IDs
or SUPIs shall be provided"}No SUPI or subscription data is leaked.
AnalysisAI
Unauthenticated access to free5GC UDR subscriber identifiers exposes SUPI/IMSI values via unprotected 5G Service Based Interface endpoint. Missing return statements in free5GC UDR versions prior to 4.2.1 allow attackers to retrieve complete subscriber databases with a single parameterless HTTP GET request, undermining 3GPP SUCI privacy mechanisms. Public exploit code exists. EPSS score is low (0.10%) indicating limited observed exploitation, but impact is severe for exposed deployments with misconfigured network segmentation.
Technical ContextAI
The vulnerability affects the User Data Repository (UDR) network function in free5GC, an open-source 5G core network implementation written in Go. The UDR exposes RESTful APIs defined by 3GPP TS 29.519 specification over the Service Based Interface (SBI), which is the internal HTTP/2-based communication fabric between 5G core network functions. The affected endpoint implements the Application Data Influencing Data Subscriptions retrieval API. The root cause is CWE-200 (Exposure of Sensitive Information) manifesting as a control flow error in api_datarepository.go: validation logic sends an HTTP 400 error response but fails to halt execution, allowing the subsequent database query and response serialization to proceed. This results in dual-content responses where both the error object and sensitive subscriber data are transmitted. The CPE identifier pkg:go/github.com_free5gc_udr indicates the vulnerability resides in the Go module implementation of the UDR component.
RemediationAI
Apply the vendor-released patch that adds missing return statements to NFs/udr/internal/sbi/api_datarepository.go in the HandleApplicationDataInfluenceDataSubsToNotifyGet function. The fix is confirmed functional per the security advisory, preventing subscriber data leakage while maintaining proper HTTP 400 error responses. Patch available through the GitHub security advisory at https://github.com/free5gc/free5gc/security/advisories/GHSA-wrwh-rpq4-87hf. If immediate patching is not feasible, implement network-level compensating controls: restrict access to the UDR SBI endpoints (TCP port 8000 by default in free5GC) using firewall rules or network policies that permit connections only from authenticated 5G network functions (AMF, SMF, PCF, etc.) with mutual TLS verification. Deploy a reverse proxy or API gateway in front of the UDR to enforce authentication and parameter validation before requests reach the vulnerable handler. Monitor UDR access logs for requests to /nudr-dr/v2/application-data/influenceData/subs-to-notify without query parameters as indicators of exploitation attempts. Note that network segmentation alone does not eliminate risk if an attacker compromises any host with SBI access, so patching remains the definitive mitigation. Validate the patch by confirming that parameterless requests return only the error JSON without subscriber data arrays in the response body.
Same weakness CWE-200 – Information Exposure
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
Share
External POC / Exploit Code
Leaving vuln.today
GHSA-wrwh-rpq4-87hf