Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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、根因分析和补丁详情。

查看仓库
7小时48分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

⚡ CVE-2026-74469 — DiagSpill

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

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


⚠️ 免责声明

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

未经明确授权,请勿将概念验证代码用于任何系统。


📌 漏洞概述

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


🧬 漏洞描述

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

root@kitploit:~
transport_count

每添加一个新的唯一对等方,计数器就会递增。

关键边界是:

root@kitploit:~
65535

再添加一个唯一传输会导致:

root@kitploit:~
65535 + 1
     ↓
     0

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

root@kitploit:~
transport_count

与:

root@kitploit:~
transport_addr_list

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


🔬 根本原因

该漏洞可以表示为:

root@kitploit:~
                    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 个传输会使计数器回绕为零。


🧠 缺陷为何发生

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

分配侧

root@kitploit:~
transport_count
       │
       ▼
payload size

复制侧

root@kitploit:~
transport_addr_list
       │
       ▼
copy every peer address

整数回绕后:

root@kitploit:~
transport_count = 0

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

因此分配器基于以下内容预留空间:

root@kitploit:~
0 peers

而复制操作仍可处理:

root@kitploit:~
65536 peer addresses

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


💥 内存破坏

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

概念上:

root@kitploit:~
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:越界写入。


🔎 存在漏洞的代码路径

相关路径可以概括为:

root@kitploit:~
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

受影响的源文件是:

root@kitploit:~
net/sctp/associola.c

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


🩹 上游修复

上游修复为:

root@kitploit:~
bd0e9289e2642f6a5c54faad304ce0f41e926d22

提交:

root@kitploit:~
sctp: prevent peer transport count overflow

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

root@kitploit:~
transport_count >= U16_MAX

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

这样即使在关联已达到限制时,仍能检索已存在的传输。


🛡️ 补丁逻辑

存在漏洞

root@kitploit:~
New peer
   │
   ▼
transport_count++
   │
   ▼
Possible 16-bit wrap
   │
   ▼
Diagnostic size mismatch
   │
   ▼
OOB write

已修补

root@kitploit:~
New peer
   │
   ▼
Existing peer?
   │
 ┌─┴──────────┐
 │            │
YES           NO
 │            │
 ▼            ▼
Reuse       Check U16_MAX
transport       │
                ▼
          Reject at limit

重要的安全特性是防止计数器回绕,同时保留对现有对等方的正常查找语义。


📊 存在漏洞 vs 已修补


💥 安全影响

内存破坏可能导致:

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

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

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


🧪 研究环境

推荐的隔离拓扑:

root@kitploit:~
┌───────────────────────────────────────────┐
│              Linux VM                    │
│                                           │
│       ┌───────────────────┐               │
│       │   SCTP Association │               │
│       └─────────┬─────────┘               │
│                 │                         │
│                 ▼                         │
│       ┌───────────────────┐               │
│       │ Multiple SCTP      │               │
│       │ Peer Transports    │               │
│       └─────────┬─────────┘               │
│                 │                         │
│                 ▼                         │
│       ┌───────────────────┐               │
│       │   SCTP sock_diag   │               │
│       └─────────┬─────────┘               │
│                 │                         │
│                 ▼                         │
│          INET_DIAG_PEERS                  │
│                                           │
└───────────────────────────────────────────┘

有用的工具:

root@kitploit:~
ip sctp
ss
ss -a
ss -A sctp
dmesg -w
gdb
pwndbg
crash

检查 SCTP 支持:

root@kitploit:~
lsmod | grep sctp

检查内核配置:

root@kitploit:~
grep CONFIG_IP_SCTP /boot/config-$(uname -r)

🔎 内核验证

检查正在运行的内核:

root@kitploit:~
uname -r

检查 SCTP 配置:

root@kitploit:~
grep -E 'CONFIG_IP_SCTP|CONFIG_SCTP' \
/boot/config-$(uname -r)

检查已加载的 SCTP 模块:

root@kitploit:~
lsmod | grep -i sctp

检查 SCTP 套接字:

root@kitploit:~
ss -A sctp

🧪 复现工作流

用于受控内核研究:

root@kitploit:~
01. Build vulnerable kernel
          ↓
02. Boot isolated VM
          ↓
03. Enable SCTP
          ↓
04. Create controlled SCTP association
          ↓
05. Populate unique peer transports
          ↓
06. Reach transport-count boundary
          ↓
07. Trigger SCTP diagnostic dump
          ↓
08. Monitor skb diagnostics
          ↓
09. Capture kernel behavior
          ↓
10. Apply upstream fix
          ↓
11. Repeat test
          ↓
12. Compare vulnerable vs patched

监控内核输出:

root@kitploit:~
sudo dmesg -w

用于调试:

root@kitploit:~
gdb vmlinux

或:

root@kitploit:~
pwndbg vmlinux

📂 仓库结构

root@kitploit:~
CVE-2026-74469-DiagSpill/
│
├── README.md
│
├── exploit/
│   ├── poc.c
│   └── Makefile
│
├── analysis/
│   ├── root-cause.md
│   ├── sctp-transport-count.md
│   ├── sock-diag.md
│   ├── skb-overflow.md
│   └── patch-analysis.md
│
├── kernel/
│   ├── vulnerable/
│   └── patched/
│
├── lab/
│   ├── setup.sh
│   ├── cleanup.sh
│   └── topology.md
│
├── screenshots/
│
├── docs/
│   └── research-notes.md
│
└── LICENSE

🛡️ 缓解措施

主要缓解措施是升级到包含上游修复的内核。

对于 Debian/Kali:

root@kitploit:~
sudo apt update
sudo apt full-upgrade

然后重启:

root@kitploit:~
sudo reboot

验证:

root@kitploit:~
uname -r

如果不需要 SCTP,管理员还可以根据其环境和运营需求考虑禁用受影响的 SCTP 功能。公开研究特别指出,当这些组件未使用时,禁用 SCTP / sctp_diag 可作为即时缓解措施。


📦 已修复的内核版本

上游稳定版公告列出了以下已修复版本:

这些版本来自 Linux 内核 CVE 公告;发行版可能会将修复向后移植到版本号不同的软件包中。


🧩 安全经验教训

01 — 绝不允许有界计数器静默回绕

16 位计数器有硬性最大值:

root@kitploit:~
U16_MAX = 65535

安全敏感代码必须显式处理该边界。

02 — 分配和复制计数必须一致

用于分配缓冲区的大小必须与实际复制到其中的对象数量相对应。

03 — 诊断接口是安全敏感的

当内部状态变得不一致时,内核诊断 API 可能成为内存破坏攻击面。

04 — 整数缺陷可能变成内存安全缺陷

原始原语是整数溢出,但由此产生的安全影响是越界内核写入。

05 — 内核网络状态很复杂

SCTP 关联可能包含大量对等传输,这使得计数器限制和列表管理逻辑对安全至关重要。


📚 参考资料

  • CVE: CVE-2026-74469
  • 代号: DiagSpill
  • 子系统: Linux SCTP
  • 受影响文件: net/sctp/associola.c
  • 主要函数: sctp_assoc_add_peer()
  • 修复: sctp: prevent peer transport count overflow
  • 上游修复: bd0e9289e2642f6a5c54faad304ce0f41e926d22
  • CWE: CWE-787 / 越界写入
  • Linux 内核 CVE 公告: CVE-2026-74469 advisory
  • Debian 安全跟踪器: CVE-2026-74469 Debian tracker
  • Red Hat: CVE-2026-74469 Red Hat advisory

⚡ DiagSpill

CVE-2026-74469

Linux Kernel · SCTP · sock_diag · OOB Write · Kernel Security


Research • Analyze • Reproduce • Harden


0xBlackash

下载工具
字段详情
CVECVE-2026-74469
代号DiagSpill
组件Linux 内核
子系统SCTP / sock_diag
受影响文件net/sctp/associola.c
主要函数sctp_assoc_add_peer()
缺陷类别整数溢出 / 越界写入
影响内核内存破坏
潜在影响本地权限提升
CVSS v3.17.0 — 高
攻击向量本地
攻击复杂度高
所需权限低
用户交互无
状态已修补
安全特性存在漏洞已修补
强制执行 16 位传输限制❌✅
防止计数器回绕❌✅
现有对等方仍可使用✅✅
诊断载荷大小可靠❌✅
防止 OOB skb 写入❌✅
缓解内核内存破坏❌✅
分支已修复版本
5.105.10.265
5.155.15.216
6.16.1.183
6.66.6.151
6.126.12.103
6.186.18.44
7.17.1.8
7.27.2-rc6