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

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

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

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

工具目录

分类

查看所有分类
Loading categories
setcred — CVE-2026-45250: FreeBSD 14.4 setcred kernel buffer overflow (LPE) | Kitploit
工具/GitHubGitHub/venglin/setcred
Privilege EscalationExploit FrameworksVulnerability AnalysisExploitationShellcodePenetration TestingPayload DevelopmentBinary Exploitation
GitHubvenglin/setcred

setcred

CVE-2026-45250: FreeBSD 14.4 setcred kernel buffer overflow (LPE)

查看仓库
22228天前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

FreeBSD setcred(2) — 研究成果

本子目录收集了针对 FreeBSD 14.x 内核中 setcred(2) 栈缓冲区溢出的文档和可用漏洞利用程序。

漏洞本身在 setcred.txt 中有完整记录。简要说明:kern_setcred_copyin_supp_groups() 使用了 sizeof(*groups),其中 groups 是 gid_t ** 类型,导致在将数据 copyin() 到固定大小的内核栈数组时,步长为 8 字节而非 4 字节。该溢出在任何权限检查之前即可被任何非特权用户触发。

该仓库包含两种可行的利用路径:

  • 无 SMAP / 无 SMEP — exp2_lpe_no_smap.c。通过一次 setcred(2) 系统调用,利用位于 amd64_syscall+0x155 的链式原语,借助伪造的 struct sysentvec 将调用线程的 uid 重定向为用户空间 shellcode,从而提升至 uid=0。

  • 启用 SMAP / SMEP — exp_setcred_smap_zfs.c。劫持 zfs.ko 中的 ZSTD_initCStream_advanced,其函数体会写入 td_ucred = rcx+1。当 rcx = K1 = parent_pargs - 1(一个放置在子进程 pargs slab 中的 qword)时,调用线程的凭证指针落在父进程 pargs slab 中,我们在其中植入了包含 cr_uid=0 的伪造 struct ucred。适用于任何加载了 zfs.ko(典型服务器配置)的 FreeBSD 14.4 GENERIC 系统,且无需内核信息泄露原语。

文件布局

root@kitploit:~
setcred/
+- setcred.txt          主要文档:漏洞描述、两种 LPE 技术、PoC 指示、修复状态、时间线。
|                       纯 ASCII。
+- exploits/            精选漏洞利用程序。
    +- poc_dos.c                    最小 DoS PoC —— 任意用户即可
    |                               使内核崩溃。
    +- exp2_lpe_no_smap.c           针对无 SMAP/SMEP 内核的完整 LPE。
    +- exp_setcred_smap_zfs.c       通过 zfs.ko ZSTD gadget 实现
    |                               的 SMAP/SMEP 安全 LPE。无需信息泄露。
    +- wrapper.c                    小型 setuid-root → /bin/sh 启动器,
    |                               由 exp_setcred_smap_zfs 安装到
    |                               /tmp/rsh。
    +- Makefile.setcred_smap_zfs    用于 SMAP/SMEP 利用路径的
    |                               客户机构建脚本
    |                               (all、install、clean)。
    +- README_setcred_smap_zfs.md   针对 SMAP/SMEP 利用路径的
                                   最终用户文档。

状态

  • 通过 exploits/ 中的对应程序,DoS(任意用户使内核崩溃)和无 SMAP/SMEP 的完整 LPE 均可复现。

  • 在启用了 SMAP/SMEP 的情况下,通过 exp_setcred_smap_zfs.c 在加载了 zfs.ko 的任何 FreeBSD 14.4 GENERIC 系统上均可复现完整 LPE。具体技术细节见 setcred.txt。

  • 截至报告日期,14.4-RELEASE / stable/14 仍然存在漏洞。该修复于 2025-11-27 作为无关重构的附带结果合并至 main(提交 000d5b5),但未反向移植。

下载工具