关键信息总结 漏洞标题 [Bug]: SGW-C crashes via PFCP PDR ID pool exhaustion (ogs_assert(pdr)) 发布版本 Version: v2.1.6 漏洞描述 SGW-C 可以通过 GTPv2-C 流干扰过量的隧道/PDR 分配直到 PFCP PDR ID 池耗尽。利用提供的 PoC (模仿 MME 和可选的 pgw),攻击者首先发送带有多个承载的 CreateSessionRequest,然后重复发送带有承载上下文的 CreateIndirectDataForwardingTunnelRequest,其中包含 s1_u_enbode_f-teid(可选地 s12_rnc_f_teid)以驱动额外的隧道相关分配。经过多次重复轮次,SGW-C 未能分配新的 PDR ID (pdr_id_pool() 失败),并立即在 sgwc_tunnel_add 中触发断言 ogs_assert(pdr),导致服务中断崩溃。 漏洞复现步骤 1. 在新文件夹中启动一个新的 Go 项目: 。 2. 创建一个 文件,并粘贴下面的代码: ```go // VuLn-PC1-09 PoC: Tunnel pool exhaustion triggers ogs_assert(tunnel) // Target: Open5GS SGW-C (sgwc_tunnel_adlo) // Flow: // 1) Act as MME: send CreateSessionRequest and CreateIndirectDataForwardingTunnelRequest with multiple bearers cont