CVE-2025-15576: Jail chroot escape via fd exchange with a different jail
If two sibling jails are restricted to separate filesystem trees, which is to say that neither of the two jail root directories is an ancestor of the other, jailed processes may nonetheless be able to access a shared directory via a nullfs mount, if the administrator has configured one.
In this case, cooperating processes in the two jails may establish a connection using a unix domain socket and exchange directory descriptors with each other.
When performing a filesystem name lookup, at each step of the lookup, the kernel checks whether the lookup would descend below the jail root of the current process. If the jail root directory is not encountered, the lookup continues.
In a configuration where processes in two different jails are able to exchange file descriptors using a unix domain socket, it is possible for a jailed process to receive a directory for a descriptor that is below that process' jail root. This enables full filesystem access for a jailed process, breaking the chroot.
Note that the system administrator is still responsible for ensuring that an unprivileged user on the jail host is not able to pass directory descriptors to a jailed process, even in a patched kernel.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2025-15576?
CVE-2025-15576 is considered a medium severity vulnerability that allows for jail chroot escape.
How do I fix CVE-2025-15576?
To fix CVE-2025-15576, upgrade your FreeBSD system to the latest patched version of 13.5 or 14.3.
What does CVE-2025-15576 entail?
CVE-2025-15576 involves a potential jail escape through file descriptor exchange between sibling jails.
Which versions of FreeBSD are affected by CVE-2025-15576?
CVE-2025-15576 affects FreeBSD versions 13.5 and 14.3, including their patch releases.
Is there a workaround for CVE-2025-15576?
There is no official workaround for CVE-2025-15576; upgrading to a secure version is recommended.