FreeBSD 中的 7 个新漏洞

2026年5月20日,FreeBSD开发者宣布发布补丁,修复系统中的七个新漏洞。这些漏洞的危险程度不尽相同,但有些漏洞极其棘手。

CVE-2026-45251 — 如果类似 select 的系统调用的等待列表中包含进程描述符(在 FreeBSD 15 中,还新增了 jail 描述符),并且这些描述符在等待的系统调用仍在等待期间在另一个线程中被关闭,则会发生释放后使用的情况。根据判断 本次提交与 netmap(用于加速直接访问的网络适配器驱动程序)相关的描述符也受到影响,但目前尚无官方信息。进程描述符是在 FreeBSD 9 中引入的,因此该漏洞可能自那时起就已存在。官方声明指出,该漏洞允许攻击者获取超级用户权限。目前没有办法在不发布补丁或更新的情况下缓解此漏洞。

CVE-2026-45250 — setcred 系统调用中缓冲区大小计算错误,导致后续栈写入。虽然 setcred 本身需要 root 权限,但栈损坏发生在权限检查之前,因此任何人都可以访问。该系统调用是在 FreeBSD 14.3 中引入的(这意味着早期版本不受影响),它提供了一种在单个调用中设置当前进程所有用户和组 ID 的方法,而无需使用 setuid+setgid+setgroups 等组合。该漏洞允许恶意代码在内核上下文中执行。目前没有其他方法可以缓解此漏洞,除非发布补丁或更新。

CVE-2026-45252 — 在将从 fuse 守护进程接收的字符串复制到新缓冲区之前,不会检查是否存在终止空字符。但是,会检查最大复制大小,并且不可能从内核内存中读取超过 253 个字节的额外数据。也可以向“未分配的内核堆空间”写入最多 250 个字节。默认情况下,FreeBSD 禁止非 root 用户挂载文件系统,这意味着在内核中安装恶意 fuse 守护进程需要 root 权限。但是,如果设置 `sysctl vfs.usermount=1`,则普通用户也会受到攻击。此外,还应考虑 jail 环境中 fuse 守护进程的危险性,因为它可能具有 root 权限(尽管默认情况下也禁止这样做)。

CVE-2026-45253 — 使用 ptrace 时,可能会在被调试进程中发起编号错误的系统调用,导致执行原本不应作为系统调用执行的内核代码,从而造成灾难性后果。如果设置了 security.bsd.unprivileged_proc_debug=0(无论如何,这对于服务器来说都是良好的实践,系统安装程序甚至提供了此选项),则用户进程和被隔离的进程将无法使用 ptrace,从而使该漏洞仅对 root 用户可用。

CVE-2026-45255 — 通过查看未经过筛选的恶意无线网络名称,向 bsdinstall/bsdconfig 注入具有 root 权限的 shell 命令。为避免此漏洞,只需避免从 bsdinstall/bsdconfig 查看无线网络列表即可。

CVE-2026-39461, CVE-2026-45254 — libcasper 库(而非内核)中的漏洞。该库旨在为沙盒进程提供安全、可配置的服务。其中一个漏洞与栈溢出和栈损坏有关,原因是该库对大型文件描述符编号的组织方式(其设计上限为 1024,这是 select 系统调用结构体的默认限制)。第二个漏洞是允许移除强制执行的限制列表 cap_net(该库的设计理念是,一旦对进程施加限制,就只能不断加强)。

已打补丁的系统版本编号为:14.3-RELEASE-p14、14.4-RELEASE-p5 和 15.0-RELEASE-p9。另外需要注意一点:FreeBSD 13.5 已于近期停止维护(2026 年 4 月 30 日),目前没有针对该版本(或整个 13.x 分支)的官方修复程序。但是,如果您出于某种原因不想立即升级到 14.x 版本,那么 14.3 的补丁通常也适用于 13.5 的源代码,并且由于缺少 setcred() 函数,CVE-2026-45250 与 13.x 分支无关。

来源: linux.org.ru

为具有 DDoS 保护、VPS VDS 服务器的站点购买可靠的主机 🔥 购买具备 DDoS 防护的可靠网站托管服务,包括 VPS 和 VDS 服务器 | ProHoster