关键漏洞信息总结 漏洞概述 漏洞标题: SGW-C crashes on S11 CreateSessionRequest with OI flag (uninitialized PGW S5U address -> ogs_assert(rv == OGS_OK) in sgwc_s11_build_create_session_response) #4257 标签: Type:Security 影响版本 Open5GS版本: v2.7.6 复现步骤 1. 环境准备: - Start a new Go project inside a new folder: - Create a file and paste the provided Go code. 2. 依赖库: 3. 运行程序: 漏洞描述 问题描述: 当SGW-C处理带有OI标志的S11 CreateSessionRequest时,会触发崩溃(SIGABRT/core dump)。这是因为SGW-C在收到带有OI标志的CreateSessionRequest时,会发送ModifyBearerRequest而不是直接处理。如果后续的ModifyBearerResponse路径没有初始化PGW S5U隧道地址( ),则在构建CreateSessionResponse时会触发断言失败,导致立即的SGW-C进程崩溃(DOS)。 预期行为 在带有OI标志(0x08)的CreateSessionRequest路径中,SGW-C应解析PGW的ModifyBearerResponse中的Bearer Context以初始化 (及相关隧道字段),若信息缺失,应返回适当的错误而非断言失败。 观察到的行为 由于OI标志的存在, 会跳过Bearer Context的解析,导致 未初始化。在构建CreateSessionResponse时, 会因“无IPv4或IPv6”而失败,触发SGW-C在src/sgwc/s11-build_c:120处的 断言失败,从而导致崩溃。 相关代码片段 修复建议 在收到带有OI标志的CreateSessionRequest时,确保SGW-C能够正确解析和处理Bearer Context,特别是在接收到ModifyBearerResponse时,避免目录解析跳过而导致必要的网络字段未初始化的情况。