FreeBSD Jail
FreeBSD jail是一种操作系统层轻量级虚拟化技术(即容器技术),在FreeBSD操作系统中运作。利用该技术的FreeBSD系统管理员可以创造出几个小型的软件运行系统,这些子系统被称为监狱(jails)。该技术被Poul-Henning Kamp采纳并加入FreeBSD系统中。2000年,伴随FreeBSD 4.0版的发布而正式对外公开。系统管理者可以使用jail这个命令来调用这个服务。每个 Jail 拥有自己独立的根文件系统、用户、进程、网络栈(如使用 VNET),能极大提高安全隔离性,是比传统 chroot 更高级的沙盒工具。
Jail技术是基于类Unix系统下的chroot机制进一步发展而来。chroot jail限制进程只能访问某个部分的文件系统,但是FreeBSD jail机制限制了在软件Jail中运作的进程,不能够影响操作系统的其他部分。也就是说在软件Jail中的进程是运作在一个沙盒上,与 Linux 下的 Docker 类似。另有派生的应用容器 jetpack。
核心特点:
隔离与安全:监狱内的进程无法访问系统其他部分,即使管理员权限(root)被劫持,也无法破坏宿主机,实现了高安全性的沙盒环境。
轻量级:不同于传统虚拟机(VM)需要运行完整的操作系统,Jails 共享宿主机的内核,占用资源极少,启动速度快。
资源管理:可以对每个 Jail 进行资源限制(如 CPU、内存、网络),适合在同一台服务器上运行多个独立的 Web 服务、数据库或应用程序。
网络独立:通过 VNET 技术,每个 Jail 可以有自己独立的网络配置(IP 地址、路由、防火墙),实现真正的网络隔离
技术的目标:
虚拟化:每个软件监狱(jail)都是在主机机器上执行的一个虚拟环境,有它自己的文件系统、进程、用户与超级用户的账户。在软件Jail内运行的进程所面对的环境跟实际的操作系统环境几乎是一样的。
安全性:每个软件Jail都是独立运作,与其他Jail隔离,因此能够提供额外的安全层级。
容易删除及创建:因为每个软件Jail的运作范围有限,这使得系统管理员可以在不影响整体系统的前提下,以超级用户的权限,来删除在Jail下运作的进程。
2025岁末出现一个须紧急修补的关键漏洞:使攻击者能够逃离孤立的监狱环境。该漏洞被编号为CVE-2025-15576,尽管通常与系统崩溃相关,但仍导致危险的越狱状态。它使被禁进程绕过其受限环境,获得对主机底层文件系统的完全、未经授权的访问权限。
FreeBSD jails 是一种作系统虚拟化形式,能够安全地隔离进程;其采用类似 chroot 的机制来限制进程对文件和目录的访问。
CVE-2025-15576暴露了一个在两个独立兄弟监狱相互作用时目录文件描述符处理的关键缺陷,发生在非常特定的系统配置下。如果管理员通过 nullfs 挂载配置两个兄弟监狱共享目录,这些监狱中的协作进程可以通过 Unix 域套接字建立连接。通过该套接字,恶意进程可以交换目录描述符。在正常的文件系统名称查找过程中,内核检查目录是否下降到jail根以下。
由于该缺陷,内核在通过套接字交换目录描述符时无法正确停止查找,因此进程可以成功接收完全超出其受限监狱树的目录文件描述符。
这一缺陷的主要影响是文件系统隔离的完全丧失。如果攻击者控制两个共享 nullfs 挂载和 Unix 域套接字的 jail 中的进程,它们可以互相传递目录描述符以突破 chroot 限制。一旦离开Jail环境,攻击者即可获得完整的文件系统访问权限。
它们可以访问根文件系统,修改关键系统文件,窃取敏感数据或发动进一步攻击以提升主机权限。需要注意的是,管理员必须确保无权限用户无法将目录描述符传递给被禁的进程。
目前没有临时的变通方法可以缓解这一漏洞,管理员必须立即将他们的 FreeBSD 系统升级到已补丁的发布分支。对于从二进制发行集(如 FreeBSD 14.3 或 13.5 的 RELEASE 版本)安装的系统,管理员可以使用内置的更新工具部署修复。运行 freebsd-update fetch,然后安装 freebsd-update 安装,将安全套用补丁。安全更新生效必须系统重启。
对于管理源代码安装的环境,管理员必须从官方 FreeBSD 安全门户下载相关补丁,验证其 PGP 签名,并重新编译内核。
为确保完全保护,请确认系统运行的是2026年2月24日之后的补丁内核。
Jail技术是基于类Unix系统下的chroot机制进一步发展而来。chroot jail限制进程只能访问某个部分的文件系统,但是FreeBSD jail机制限制了在软件Jail中运作的进程,不能够影响操作系统的其他部分。也就是说在软件Jail中的进程是运作在一个沙盒上,与 Linux 下的 Docker 类似。另有派生的应用容器 jetpack。
核心特点:
隔离与安全:监狱内的进程无法访问系统其他部分,即使管理员权限(root)被劫持,也无法破坏宿主机,实现了高安全性的沙盒环境。
轻量级:不同于传统虚拟机(VM)需要运行完整的操作系统,Jails 共享宿主机的内核,占用资源极少,启动速度快。
资源管理:可以对每个 Jail 进行资源限制(如 CPU、内存、网络),适合在同一台服务器上运行多个独立的 Web 服务、数据库或应用程序。
网络独立:通过 VNET 技术,每个 Jail 可以有自己独立的网络配置(IP 地址、路由、防火墙),实现真正的网络隔离
技术的目标:
虚拟化:每个软件监狱(jail)都是在主机机器上执行的一个虚拟环境,有它自己的文件系统、进程、用户与超级用户的账户。在软件Jail内运行的进程所面对的环境跟实际的操作系统环境几乎是一样的。
安全性:每个软件Jail都是独立运作,与其他Jail隔离,因此能够提供额外的安全层级。
容易删除及创建:因为每个软件Jail的运作范围有限,这使得系统管理员可以在不影响整体系统的前提下,以超级用户的权限,来删除在Jail下运作的进程。
2025岁末出现一个须紧急修补的关键漏洞:使攻击者能够逃离孤立的监狱环境。该漏洞被编号为CVE-2025-15576,尽管通常与系统崩溃相关,但仍导致危险的越狱状态。它使被禁进程绕过其受限环境,获得对主机底层文件系统的完全、未经授权的访问权限。
FreeBSD jails 是一种作系统虚拟化形式,能够安全地隔离进程;其采用类似 chroot 的机制来限制进程对文件和目录的访问。
CVE-2025-15576暴露了一个在两个独立兄弟监狱相互作用时目录文件描述符处理的关键缺陷,发生在非常特定的系统配置下。如果管理员通过 nullfs 挂载配置两个兄弟监狱共享目录,这些监狱中的协作进程可以通过 Unix 域套接字建立连接。通过该套接字,恶意进程可以交换目录描述符。在正常的文件系统名称查找过程中,内核检查目录是否下降到jail根以下。
由于该缺陷,内核在通过套接字交换目录描述符时无法正确停止查找,因此进程可以成功接收完全超出其受限监狱树的目录文件描述符。
这一缺陷的主要影响是文件系统隔离的完全丧失。如果攻击者控制两个共享 nullfs 挂载和 Unix 域套接字的 jail 中的进程,它们可以互相传递目录描述符以突破 chroot 限制。一旦离开Jail环境,攻击者即可获得完整的文件系统访问权限。
它们可以访问根文件系统,修改关键系统文件,窃取敏感数据或发动进一步攻击以提升主机权限。需要注意的是,管理员必须确保无权限用户无法将目录描述符传递给被禁的进程。
目前没有临时的变通方法可以缓解这一漏洞,管理员必须立即将他们的 FreeBSD 系统升级到已补丁的发布分支。对于从二进制发行集(如 FreeBSD 14.3 或 13.5 的 RELEASE 版本)安装的系统,管理员可以使用内置的更新工具部署修复。运行 freebsd-update fetch,然后安装 freebsd-update 安装,将安全套用补丁。安全更新生效必须系统重启。
对于管理源代码安装的环境,管理员必须从官方 FreeBSD 安全门户下载相关补丁,验证其 PGP 签名,并重新编译内核。
为确保完全保护,请确认系统运行的是2026年2月24日之后的补丁内核。