# Open5GS sgwc S11拒绝服务漏洞
## 概述
Open5GS 存在一个拒绝服务漏洞,影响版本至 2.7.6。该漏洞存在于 sgwc 组件的 `src/sgwc/s11-handler.c` 文件中的 `sgwc_s11_handle_downlink_data_notification_ack` 函数。
## 影响版本
Open5GS 2.7.6 及之前版本。
## 细节
攻击者可远程利用此漏洞,通过操纵 `sgwc_s11_handle_downlink_data_notification_ack` 函数触发拒绝服务。相关补丁为:b4707272c1caf6a7d4dca905694ea55557a0545f。漏洞已被公开披露,并可能被利用。
## 影响
远程攻击者可导致 sgwc 组件发生拒绝服务,从而中断服务运行。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|
标题: [Bug]: SGW-C crashes on delayed S11 Downlink Data Notification Ack after session teardown (ogs_assert(bearer) in sgwc_s11_handle_downlink_data_notification_ack) · Issue #4230 · open5gs/open5gs -- 🔗来源链接
标签:issue-tracking
神龙速读:
### 关键信息总结
#### 漏洞描述
- **问题类型**: 漏洞(Bug)
- **影响模块**: SGW-C (Serving Gateway - Control Plane)
- **触发条件**:
- 发送延迟的 S11 Downlink Data Notification Ack (DDN Ack) 到 SGW-C,此时会话已终止。
- 代码路径: `sgwc_s11_handle_downlink_data_notification_ack`
#### 复现步骤
1. **环境准备**:
- 需要 v2.7.6 版本的 Open5GS。
- 创建一个新的文件夹并初始化 Go 项目。
- 创建 `main.go` 文件并粘贴提供的代码。
2. **执行步骤**:
- 按照代码注释中的步骤执行特定操作序列。
- 发送 DDN Ack 后监测 SGW-C 崩溃情况。
#### 日志分析
- **错误日志**:
- SGW-C 收到延迟的 DDN Ack 后调用 `ogs_assert(bearer)`,触发断言失败,导致崩溃。
- 核心错误信息: `ogs_assert(bearer)` 失败。
#### 已解决问题的状态
- **修复状态**: 已修复 (`status:already-fixed`).
- **修复原因**: 代码仓库中已更新相关修复。
#### 其他关键信息
- **标签**: `status:already-fixed`
- **参与者**: LinZiyuu (报告者)
标题: [Bug]: SGW-C crashes on delayed S11 Downlink Data Notification Ack after session teardown (ogs_assert(bearer) in sgwc_s11_handle_downlink_data_notification_ack) · Issue #4230 · open5gs/open5gs -- 🔗来源链接
标签:exploitissue-tracking
神龙速读:
从该 GitHub Issue 页面的截图中,可以提取到关于漏洞的关键信息如下:
### 关键信息汇总
- #### 漏洞描述
- **问题描述**:SGW-C 在会话删除后收到延迟的 S11 Downlink Data Notification Ack(DDN Ack)时崩溃(具体函数为 ` ogs_assert(bearer)` in `sgwc_s11_handle_downlink_data_notification_ack`)。
- **影响版本**:v2.7.6。
- **触发条件**:
- 创建一个新的会话。
- 触发 Downlink Data Notification Ack 在会话删除后到达。
- 该 Ack 到达时应触发崩溃。
- #### 复现步骤
- 使用 Go 语言创建一个示例程序。
- 运行代码,并按照步骤指定参数触发该漏洞。
- #### 日志信息
- 表明 S11 消息处理失败并返回了一个触发崩溃的 DDN 认可,详细描述了导致崩溃的信息。
- 核心崩溃日志显示 S11 消息处理异常。
- #### 预期行为
- SGW-C 应该安全地处理在删除会话后收到的延迟 DDN Ack 消息,而不应崩溃。
- #### 解决状态
- 问题已修复 (`status:already-fixed`),并附有 `Housekeeping:To...` 标签标记清理任务。
### 其他相关信息
- 提交者使用 Go 语言编写的示例代码来复现问题。
- 该问题已关闭 (`Closed`),并且被标记为 `status:already-fixed`,表示漏洞已在最新版本中修复。
标题: sgwc: avoid fatal assert on DDN Ack with missing bearer or session · open5gs/open5gs@b470727 · GitHub -- 🔗来源链接
标签:patch
神龙速读:
### 关键漏洞信息
- **漏洞类型**:致命断言唤起(Fatal Assert)
- **影响模块**:SGWC 的 `src/sgwc/s11-handler.c` 文件
- **具体描述**:
- 避免在带有缺失的担当或会话时断言致命的 SGWC。
- 在相关的担当或会话已经被释放后,当数据通知Ack 到达时,不中止 SGW-C。
- 用运行时检查和日志记录代替断言依赖的假设,总是安全地完成 S11交易以防止在延迟或格式错误的 ACK 消息上进程终止。
- **更改内容概述**:
- 替换原来依赖断言的数据检查为条件判断。
- 新增加对 `s11_xact->data`,`bearer_id` 和 `bearer` 是否存在以及是否有效进行检查的代码。
- 当缺少相应数据或数据非法时,不会直接中止程序而是进行相应的错误记录。
标题: Submit #735339: Open5GS SGWC v2.7.6 Denial of Service -- 🔗来源链接
标签:third-party-advisory
神龙速读:
以下是从截图中可以获取到的关于漏洞的关键信息,用简洁的markdown表示:
```markdown
## 漏洞摘要
- **标题**: Open5GS SGWC v2.7.6 服务拒绝 (DoS)
- **提交 ID**: #735339
### 漏洞描述
- **CVSS评分**: 3.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
### 详细描述
- **漏洞类型**: 服务拒绝
- **影响产品**: Open5GS SGWC v2.7.6
### 漏洞说明
SGW-C 可通过发送延迟的 GTPv2-C 下行数据通知确认 (DDN Ack) 到 S11 接口在相关承载被移除后触发崩溃。
### 漏洞复现步骤
1. 新建一个 Go 项目文件夹,运行 `go mod init poc`
2. 创建 `main.go` 文件,粘贴下方代码:
```go
package main
import (
"flag"
"fmt"
"log"
"math/rand"
"net"
"os"
"strconv"
"strings"
"sync/atomic"
"time"
gtpv1msg "github.com/wmnsk/go-gtp/gtpv1/message"
"github.com/wmnsk/go-gtp/gtpv1"
"github.com/wmnsk/go-gtp/gtpv2/ie"
gtpv2msg "github.com/wmnsk/go-gtp/gtpv2/message"
)
```
```
标题: CVE-2025-15539 Open5GS sgwc s11-handler.c sgwc_s11_handle_downlink_data_notification_ack denial of service (Issue 4230 / CNNVD-202601-2974) -- 🔗来源链接
标签:vdb-entrytechnical-description
神龙速读:
### 关键漏洞信息
- **漏洞描述**:
- 在Open5GS 2.7.6及以下版本中的`sgwc`组件,`src/sgwc/s11-handler.c`文件中的`sgwc_s11_handle_downlink_data_notification_ack`函数存在漏洞,导致服务拒绝(DoS)。
- **CVE ID**: CVE-2025-15539
- **CVSS评分**: 5.6
- **漏洞利用价格**: $0-$5k
- **CTI兴趣评分**: 3.65
- **漏洞类型**: 服务拒绝 (DoS)
- **影响**: 可以远程触发,无身份验证需求,利用难度较低,已经存在公共漏洞利用代码。
- **CWE分类**: CWE-404 (未正确释放或不正确释放资源)
- **MITRE ATT&CK技术**: T1499 (服务拒绝)
- **状态**: 已有修复补丁,问题报告标记为已修复。
- **其他信息**: 漏洞详情可在GitHub上查看。
暂无评论