[PCF] Memory Leak via CORS Middleware Registration in HTTP Handler Leads to Denial of Service 漏洞概述 在 free5GC 的 PCF(策略控制功能)中,存在一个内存泄漏漏洞。攻击者无需认证,只需通过网络访问 PCF SBI 接口,向 OAM 端点发送重复的 HTTP 请求,即可导致不受控的内存增长。 技术细节: 触发点: 根路由器(Router)的 方法内部注册了一个新的 CORS 中间件。 原因: 在 Gin 框架中, 不是幂等的。它不会替换现有的中间件,而是每次调用都在路由器的内部中间件切片中追加一个新的实例。 后果: 随着请求增加,Gin 执行越来越多的 CORS 中间件实例,导致内存永久增长,最终耗尽内存并导致拒绝服务(DoS)。 影响范围 受影响版本: free5GC <= 4.2.1 受影响组件: PCF (Policy Control Function) 影响描述: 任何部署了 free5GC 且 PCF OAM 接口可从内部 5G 核心网络访问的实例。 由于所有 5G 核心 NF 共享相同的 Docker 网络,任何被攻破或受控的 NF 容器都可以触发此漏洞。 服务影响: PCF 负责向 AMF 提供 AM 策略和向 SMF 提供 SM 策略。DoS 将阻止所有 UE 获取 AM 和 SM 策略,导致 5G 会话建立失败、新 UE 注册失败以及现有会话的策略更新失败。在生产部署中,这将导致受影响的 PCF 实例服务的所有订户完全失去 5G 服务。 修复方案 将 移动到服务器初始化函数(仅在启动时调用一次),并从所有处理程序中完全移除 。 POC 代码 漏洞代码片段 (Go): 修复代码片段 (Go): 利用代码 (Shell):**