[Bug]: SMF crash on H-SMF 201 Created response with missing qosFlowsSetupList #4449 漏洞概述 在 Open5GS 的 SMF(会话管理功能)组件中,当 SMF 以 home-routed V-SMF 角色运行时,如果收到一个 响应(针对 ),且该响应的 中缺少 字段,SMF 会直接崩溃(abort)。 该问题源于代码逻辑:SMF 在处理响应时,如果列表不存在或为空,会调用 释放内存。但在后续构建 NAS 上下文时,代码会无条件断言(assert)该列表必须存在且至少包含一项,导致程序因断言失败而终止。 影响范围 组件: Open5GS SMF 版本: v2.7.7 触发条件: 收到包含有效早期字段但缺少 的 响应。 后果: SMF 进程崩溃(exit code 139),导致整个 SMF 服务不可用。 修复方案 目前页面中未提供具体的代码修复补丁,仅描述了问题现象。预期的行为应该是 SMF 拒绝格式错误的 响应,并仅终止受影响的交易,而不是崩溃整个进程。 POC / 利用代码 1. 触发崩溃的 HTTP 请求示例 以下是一个构造的 请求,用于触发该漏洞: 2. 构造的 JSON 数据 (PduSessionCreatedData) 该 JSON 数据包含 但故意缺少 : 3. 相关代码片段 (问题根源) 问题代码 1: 处理响应时的逻辑 问题代码 2: 后续断言 4. 崩溃日志