Currently, if the secure level is low enough, system flags can

be manipulated by prison root. In 4.x prison root can not manipulate
system flags, regardless of the security level. This behavior
should remain consistent to avoid any surprises which could lead
to security problems for system administrators which give out
privileged access to jails.

This commit changes suser_cred's flag argument from SUSER_ALLOWJAIL
to 0. This will prevent prison root from being able to manipulate
system flags on files.

This may be a MFC candidate for RELENG_5.

Discussed with:	cperciva
Reviewed by:	rwatson
Approved by:	bmilekic (mentor)
PR:		kern/70298
This commit is contained in:
Christian S.J. Peron 2004-08-22 02:03:41 +00:00
parent 392e840716
commit 60088fb7b1
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=134143

View File

@ -499,7 +499,7 @@ ufs_setattr(ap)
* Privileged non-jail processes may not modify system flags
* if securelevel > 0 and any existing system flags are set.
*/
if (!suser_cred(cred, SUSER_ALLOWJAIL)) {
if (!suser_cred(cred, 0)) {
if (ip->i_flags
& (SF_NOUNLINK | SF_IMMUTABLE | SF_APPEND)) {
error = securelevel_gt(cred, 0);