Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-74469 — CVE-2026-74469(DiagSpill)研究仓库,该漏洞是 Linux 内核 SCTP 对端传输计数器溢出导致越界写入,包含 PoC、根因分析和补丁详情。 | Kitploit
工具/GitHubGitHub/0xblackash/cve-2026-74469
权限提升内存取证漏洞分析漏洞利用论文与研究学习与教育二进制利用实验室与实践
GitHub0xblackash/cve-2026-74469

CVE-2026-74469

CVE-2026-74469(DiagSpill)研究仓库,该漏洞是 Linux 内核 SCTP 对端传输计数器溢出导致越界写入,包含 PoC、根因分析和补丁详情。

查看仓库
11161个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

⚡ CVE-2026-74469 — DiagSpill

Gemini_Generated_Image_yv49p8yv49p8yv49

Linux 内核 SCTP 对端传输计数溢出

一个 Linux 内核 SCTP 漏洞,由 16 位对端传输计数器溢出 引起,使计数器从 65535 回绕到 0。在 SCTP 诊断转储期间,回绕后的值可能导致 skb 载荷预留不足,随后发生对端地址数据的越界写入。


⚠️ 免责声明

本仓库仅用于经授权的安全研究、内核漏洞分析、CTF 环境、内核调试和防御性测试。

请勿在未经明确授权的系统上使用概念验证代码。


📌 漏洞概述

字段详情
CVECVE-2026-74469
代号DiagSpill
组件Linux 内核
子系统SCTP / sock_diag
受影响文件net/sctp/associola.c
主要函数sctp_assoc_add_peer()
缺陷类别整数溢出 / 越界写入
影响内核内存破坏
潜在影响本地权限提升
CVSS v3.17.0 — 高
攻击向量本地
攻击复杂度高
所需权限低
用户交互无
状态已修补

Linux 内核 CVE 公告将该问题描述为 SCTP 中的 16 位 transport_count 溢出,随后在诊断转储期间出现 INET_DIAG_PEERS 分配过小以及越界写入。


🧬 漏洞描述

存在漏洞的代码使用 16 位计数器维护唯一对端传输的数量:

transport_count

每新增一个唯一对等节点,计数器就会递增。

关键边界是:

65535

添加另一种独特的传输方式会导致:

65535 + 1
     ↓
     0

由此产生的环绕在以下两者之间造成不一致:

transport_count

和:

transport_addr_list

诊断子系统随后在计算响应缓冲区大小时信任被包装的计数器,同时仍遍历完整的对等地址列表。


🔬 根本原因

该漏洞可以表示为:

                    SCTP Association
                           │
                           ▼
                 Add unique peers
                           │
                           ▼
                 transport_count
                    uint16_t
                           │
                           ▼
                    65,535 peers
                           │
                           ▼
                 + 1 unique peer
                           │
                           ▼
                    Integer wrap
                           │
                           ▼
                transport_count = 0
                           │
                           ▼
                  SCTP sock_diag
                           │
                           ▼
             Reserve incorrect payload
                           │
                           ▼
          Iterate complete peer list
                           │
                           ▼
             Out-of-bounds skb write

上游安全公告明确指出,第 65,536 个传输会将计数器回绕为零。


🧠 为什么会出现这个缺陷

诊断代码实际上依赖于对同一状态的两种不同视图。

分配侧

transport_count
       │
       ▼
payload size

复制侧

transport_addr_list
       │
       ▼
copy every peer address

整数回绕之后:

transport_count = 0

transport_addr_list =
    [peer 1]
    [peer 2]
    [peer 3]
    ...
    [peer 65536]

分配器因此根据以下内容预留空间:

0 peers

而复制操作仍可继续处理:

65536 peer addresses

这种不匹配会导致内存安全违规。


💥 内存损坏

Linux 内核公告将由此产生的诊断转储描述为:预留一个空载荷,然后写入约 8 MiB 的对端地址,超出 skb 尾部。

概念上:

Expected skb:

┌───────────────────────────────┐
│ INET_DIAG header              │
├───────────────────────────────┤
│ Peer addresses                │
└───────────────────────────────┘
              ▲
              │
          valid end


Actual vulnerable state:

┌───────────────────────────────┐
│ INET_DIAG header              │
└───────────────────────────────┘
              ▲
              │
          skb tail

              ↓
      Peer address writes
              ↓
      Peer address writes
              ↓
      Peer address writes
              ↓
      OUT-OF-BOUNDS WRITE

Red Hat 将该漏洞归类为 CWE-787:越界写入。


🔎 易受攻击的代码路径

相关路径可概括为:

SCTP association
      │
      ▼
sctp_assoc_add_peer()
      │
      ▼
transport_count++
      │
      ▼
16-bit overflow
      │
      ▼
SCTP sock_diag
      │
      ▼
INET_DIAG_PEERS
      │
      ▼
skb payload reservation
      │
      ▼
transport_addr_list iteration
      │
      ▼
Out-of-bounds write

受影响的源文件是:

net/sctp/associola.c

Linux 内核 CVE 公告明确指出了此文件。


🩹 上游修复

上游修复为:

bd0e9289e2642f6a5c54faad304ce0f41e926d22

提交:

sctp: prevent peer transport count overflow

修复方案在以下情况下拒绝新的唯一对等节点:

transport_count >= U16_MAX

重要的是,该检查发生在现有对等节点查找之后。

这样便保留了在关联已达到上限时仍能检索到已存在传输的能力。


🛡️ 补丁逻辑

易受攻击

New peer
   │
   ▼
transport_count++
   │
   ▼
Possible 16-bit wrap
   │
   ▼
Diagnostic size mismatch
   │
   ▼
OOB write

已修补

New peer
   │
   ▼
Existing peer?
   │
 ┌─┴──────────┐
 │            │
YES           NO
 │            │
 ▼            ▼
Reuse       Check U16_MAX
transport       │
                ▼
          Reject at limit

关键的安全属性是防止计数器发生回绕,同时为现有对端保留正常的查找语义。


📊 易受攻击版本与已修补版本对比

安全属性易受攻击已修补
强制实施 16 位传输限制❌✅
防止计数器回绕❌✅
现有对端仍可使用✅✅
诊断负载大小可靠❌✅
防止 OOB skb 写入❌✅
缓解内核内存损坏❌✅

💥 安全影响

内存损坏可能导致:

  • 内核崩溃
  • 拒绝服务
  • 内核内存损坏
  • 越界内核写入
  • 潜在的权限提升
  • 潜在的内核代码执行

披露后发布的公开研究报告称,在特定条件下可实现本地 root 利用,而原始 Linux Kernel CNA 评分使用 AV:L/AC:H/PR:L/UI:N。

该漏洞也被描述为在非常特定的 SCTP/地址配置情况下可能可远程触达,但这不应被视为等同于一般意义上的可远程利用漏洞。


🧪 研究环境

推荐的隔离拓扑:

┌───────────────────────────────────────────┐
│              Linux VM                    │
│                                           │
│       ┌───────────────────┐               │
│       │   SCTP Association │               │
│       └─────────┬─────────┘               │
│                 │                         │
│                 ▼                         │
│       ┌───────────────────┐               │
│       │ Multiple SCTP      │               │
│       │ Peer Transports    │               │
│       └─────────┬─────────┘               │
│                 │                         │
│                 ▼                         │
│       ┌───────────────────┐               │
│       │   SCTP sock_diag   │               │
│       └─────────┬─────────┘               │
│                 │                         │
│                 ▼                         │
│          INET_DIAG_PEERS                  │
│                                           │
└───────────────────────────────────────────┘

实用工具:

ip sctp
ss
ss -a
ss -A sctp
dmesg -w
gdb
pwndbg
crash

检查 SCTP 支持:

lsmod | grep sctp

检查内核配置:

grep CONFIG_IP_SCTP /boot/config-$(uname -r)

🔎 内核验证

检查正在运行的内核:

uname -r

检查 SCTP 配置:

下载工具