本地特权提升 via 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
I. 背景
execve(2) 是用于启动可执行映像的系统调用,包括以解释器路径为前缀的脚本。该调用接受映像路径作为参数,随后是要传递给新映像的额外参数和环境变量。
II. 问题描述
内核中的运算符优先级错误导致出现一种情况:缓冲区溢出使攻击者控制的数据能够覆盖相邻的 execve(2) 参数缓冲区。
III. 影响
该漏洞可能被非特权用户利用,以获取超级用户权限。
IV. 变通办法
暂无可用的变通办法。
V. 解决方案
将受影响的系统升级到纠正日期之后的受支持的 FreeBSD 稳定版或发布/安全分支(releng),并重新启动系统。
1. 更新通过基础系统软件包安装的系统
适用于在 amd64 或 arm64 平台上通过基础软件包安装的 FreeBSD 15.0‑RELEASE:
# pkg upgrade -r FreeBSD-base
# shutdown -r +10min "Rebooting for a security update"
2. 更新通过二进制发行集安装的系统
适用于在 amd64、arm64 或 i386(FreeBSD 13)平台上未使用基础软件包安装的 FreeBSD RELEASE:
# freebsd-update fetch
# freebsd-update install
# shutdown -r +10min "Rebooting for a security update"
3. 通过源码补丁更新
以下补丁已在相应的 FreeBSD 发布分支上验证通过。
a) 下载并验证补丁
# 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
b) 应用补丁
# cd /usr/src
# patch
要确定工作树中的提交计数(用于与上述数字比较):
# git rev-list --count --first-parent HEAD
VII. 参考资料
此通告的最新修订版可在 FreeBSD 安全通告站点获取。