FreeBSD-SA-21:04.jail_remove : jail_remove(2) fails to kill all jailed processes
Versions Affected : All versions prior to TrueNAS 12.0-U3
Due to a race condition in the jail_remove(2) implementation, it may fail to kill some of the processes.
A process running inside a jail can avoid being killed during jail termination. If a jail is subsequently started with the same root path, a lingering jailed process may be able to exploit the window during which a devfs filesystem is mounted but the jail’s devfs ruleset has not been applied, to access device nodes which are ordinarily inaccessible. If the process is privileged, it may be able to escape the jail and gain full access to the system.
No workaround is available. The problem is limited to scenarios where a jail containing an untrusted, privileged process is stopped, and a jail is subsequently started with the same root path. Users not running jails are not affected, and the problem can be avoided by not starting a jail with the same path as a previously stopped jail.
- Upgrade to TrueNAS 12.0-U3 or later.
- FreeBSD Revision : r369353
- TrueNAS Commit : 438e5c6
- TrueNAS Commit : 42c7377
- JIRA Ticket : NAS-109604