FreeBSD:通过 Execve() 的本地权限提升
Source: Hacker News
FreeBSD-SA-26:13.exec – 安全通告
主题: 通过 execve() 的本地提权
类别: core
模块: execve(2)
发布时间: 2026‑04‑29
致谢: Ryan of Calif.io
受影响范围: 所有受支持的 FreeBSD 版本
已修复: 2026‑04‑29(详见下文)
CVE: CVE‑2026‑7270
背景
execve(2) 是用于启动可执行映像的系统调用,包括以解释器路径为前缀的脚本。该调用接受映像路径作为参数,随后是传递给新映像的额外参数和环境变量。
问题描述
内核中的运算符优先级错误可能导致缓冲区溢出,使攻击者控制的数据覆盖相邻的 execve(2) 参数缓冲区。
影响
该漏洞可能被非特权用户利用,以获取超级用户权限。
变通办法
暂无可用的变通办法。
解决方案
将受影响的系统升级到修正日期之后的受支持的 FreeBSD 稳定版或发布/安全分支(releng),并重启系统。
1. 更新通过基础系统软件包安装的系统
对于在 amd64 或 arm64 上通过基础软件包安装的 FreeBSD 15.0‑RELEASE:
# pkg upgrade -r FreeBSD-base
# shutdown -r +10min "Rebooting for a security update"
2. 更新通过二进制发行集安装的系统
对于未使用基础软件包安装的 FreeBSD RELEASE(amd64、arm64 或 i386,FreeBSD 13):
# freebsd-update fetch
# freebsd-update install
# shutdown -r +10min "Rebooting for a security update"
3. 通过源码补丁进行更新
下载并验证补丁:
# fetch https://security.FreeBSD.org/patches/SA-26:13/exec.patch
# fetch https://security.FreeBSD.org/patches/SA-26:13/exec.patch.asc
# gpg --verify exec.patch.asc
以 root 身份应用补丁:
# cd /usr/src
# patch
要确定工作树中的提交计数(以便与上表比较):
# git rev-list --count --first-parent HEAD
参考资料
此通告的最新修订版可在 FreeBSD 安全通告页面获取。