# OpenSGS 漏洞总结 ## 漏洞概述 - **标题**: Assertion failure in ngap_build_pdu_session_resource_modify_transfer during PDU Session Modification request - **Issue ID**: #3858 - **状态**: Closed - **标签**: Housekeeping/ToClose, Type:Security - **报告时间**: 2025-04-17 - **修复时间**: 2025-05-05 ## 影响范围 - **组件**: OpenSGS v2.7.3 - **模块**: `ngap_build_pdu_session_resource_modify_transfer` 函数 - **触发条件**: 当UE发起PDU Session Modification Request且包含Non-GBR QoS流(SQLi=9)时 - **影响**: 断言失败导致程序崩溃,PDU Session Modification Request无法完成 ## 修复方案 - **修复内容**: 修改 `ngap_build_pdu_session_resource_modify_transfer` 函数逻辑,使其能够正确区分GBR和Non-GBR QoS流 - **具体修复**: 根据SQLi值识别QoS流类型(GBR/Non-GBR),并相应地处理MBR/GBR参数 - **修复提交**: - `acetcorn` 于2025-05-05合并修复到主分支 - 提交ID: 3b55144 - 修复内容: `[AMF/NME] default to Non-GBR flow when MBR/GBR parameters are missing` ## 复现步骤 1. UE初始注册 2. 建立PDU Session 1(IPv4) 3. 建立PDU Session 3(IPv4) 4. 修改PDU Session 3,添加SQLi=9的QoS规则 5. 触发断言失败 ## 日志关键信息 ``` [amf] FATAL: ngap_build_pdu_session_resource_modify_transfer: Assertion 'qos_flow->qos_mbr_dl_bwlink' failed. [core] FATAL: backtrace() returned 11 addresses ``` ## 预期行为 - SMF应能正确识别QoS流为Non-GBR类型 - 修改请求应成功完成并生成有效的NGAP消息转发给RAN ## 实际行为 - PDU Session Modification Request procedure失败 - eNodeB/gNodeB无响应