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

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/g17hubh4ck/cve-2026-55781-poc
漏洞扫描器漏洞分析漏洞利用论文与研究
GitHubg17hubh4ck/cve-2026-55781-poc

CVE-2026-55781-poc

NanaZip 的 UFS 处理程序中存在无界内存分配漏洞,攻击者可通过控制 `fs_bsize` 字段触发该漏洞。

查看仓库
3小时52分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-55781 — NanaZip UFS 解析器拒绝服务漏洞

NanaZip 的 UFS 处理程序中存在无界内存分配漏洞,通过攻击者可控的 fs_bsize 字段触发。

摘要

字段值
CVECVE-2026-55781
安全公告GHSA-m34h-jf84-m74h
厂商M2Team / NanaZip
受影响版本NanaZip <= 6.5 Preview (6.5.1742.0)
修复版本6.5.1749.0
漏洞类别拒绝服务 (CWE-789: 使用过大尺寸值进行内存分配)
平台Windows
作者g17hubH4ck
披露日期2026-07-17

根本原因

NanaZip.Codecs.Archive.Ufs.cpp 读取 UFS 超级块,并仅对 fs_bsize 进行下界校验(MINBSIZE)。在该值被用于确定分配大小之前,未强制实施上界检查。

当根 inode(#2)声明的 di_size 大到需要间接块时,解析器会使用 fs_bsize 为每个间接层级分配一个缓冲区。设置 fs_bsize = 0x40000000(1 GiB)和 di_size = 0x10000000000(1 TiB)会强制进行三次 1 GiB 的分配(Ufs.cpp:435-437)——大约 3 GiB 的连续内存——且在任何边界检查运行之前。

结果:内存耗尽和进程终止。无代码执行。

构造的镜像布局

关键超级块字段(偏移量基于 FreeBSD fs.h 中的 offsetof(struct fs, ...)):

根 inode 地址:GetInodeOffset(2) = fs_iblkno * fs_fsize + 2 * 256 = 512。

用法

root@kitploit:~
python3 poc.py poc.img

该脚本写入畸形镜像并重新解析它,以确认每个字段都落在易受攻击的解析器所期望的位置。无网络访问、无子进程、无武器化载荷——仅载体文件本身是无害的。

验证

生成的镜像可以在没有 NanaZip 的情况下进行检查:

root@kitploit:~
xxd -s 65536 -l 64 poc.img     # 超级块头部
xxd -s 512   -l 32 poc.img     # 根 inode 头部

要观察崩溃,请在 Windows 上使用易受攻击的版本打开 poc.img。6.5.1749.0 及更高版本能正确处理该输入。

注意:此 PoC 是通过对 NanaZip.Codecs 解析器的静态分析构建的。它到达了安全公告中记录的精确易受攻击行,但未针对运行中的 NanaZip 构建执行。

缓解措施

· 升级到 NanaZip >= 6.5.1749.0。 · 如果无法升级,请避免打开来自不受信任来源的 UFS 镜像。

参考资料

· NanaZip: https://github.com/M2Team/NanaZip · 安全公告: GHSA-m34h-jf84-m74h · CWE-789: https://cwe.mitre.org/data/definitions/789.html

免责声明

本材料仅供防御性研究和在受控环境中复现漏洞使用。请勿将其用于您不拥有或未经明确许可测试的系统。

下载工具
区域偏移备注
根 inode #2512ufs2_dinode,256 字节,di_mode = IFDIR,di_size = 1 TiB
UFS2 超级块65536 (SBLOCK_UFS2)struct fs,小端序,fs_bsize = 0x40000000
总大小66912 字节SBLOCK_UFS2 + sizeof(struct fs)
偏移字段值
+16fs_iblkno0
+44fs_ncg1
+48fs_bsize0x40000000 ← 恶意值
+52fs_fsize1
+56fs_frag1
+104fs_sbsize1376
+1000fs_sblockloc65536
+1372fs_magic0x19540119 (FS_UFS2_MAGIC)