关键信息 受影响的版本 Open5GS v2.7.6 问题描述 SGW-C 在特定条件下可能会崩溃(SIGABRT / 核心转储),即当 ModifyBearerResponse 在 S5-C 上被传递时,相应的 S11 事务已经超时并被释放。 具体来说,处理函数 预期可以获取有效的关联 S11 事务,但如果 S11 侧的事务已经过期或无效, 变为 NULL,并且代码触发 ,导致 open5gs-sgwcd 崩溃。 这个问题在远程条件下允许任何可以模拟 MME/PGW 行为并控制消息定时的攻击者造成 DoS。 还原步骤 1. 创建一个新的 go 项目并在其中创建 文件,粘贴下面的代码。 2. 下载相关的库: 3. 使用 SGW-C 地址运行程序: 日志数据 运行程序产生的日志数据表明在处理变通后的 MSG 时, 函数中 失败,导致系统崩溃。 预期行为与观测行为 预期行为:SGW-C 应当优雅地处理延迟的 ModifyBearerResponse,例如记录条件、丢弃响应并清理 S5-C 事务,而不会因断言失败或过程终止出错。 观测行为:如果 PGW 在 S11 事务超时后发送 ModifyBearerResponse,SGW-C 因断言 失败在 中崩溃。 修复 这个问题已被标为 ,表明它已经被修正。