selinux: ignore unknown extended permissions

BugLink: https://bugs.launchpad.net/bugs/2095327

commit 900f83cf376bdaf798b6f5dcb2eae0c822e908b6 upstream.

When evaluating extended permissions, ignore unknown permissions instead
of calling BUG(). This commit ensures that future permissions can be
added without interfering with older kernels.

Cc: stable@vger.kernel.org
Fixes: fa1aa143ac ("selinux: extended permissions for ioctls")
Signed-off-by: Thiébaud Weksteen <tweek@google.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Acked-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Koichiro Den <koichiro.den@canonical.com>
This commit is contained in:
Thiébaud Weksteen 2024-12-05 12:09:19 +11:00 committed by Mehmet Basaran
parent 5f122098a6
commit eebd34e922
1 changed files with 6 additions and 2 deletions

View File

@ -971,7 +971,10 @@ void services_compute_xperms_decision(struct extended_perms_decision *xpermd,
xpermd->driver))
return;
} else {
BUG();
pr_warn_once(
"SELinux: unknown extended permission (%u) will be ignored\n",
node->datum.u.xperms->specified);
return;
}
if (node->key.specified == AVTAB_XPERMS_ALLOWED) {
@ -1008,7 +1011,8 @@ void services_compute_xperms_decision(struct extended_perms_decision *xpermd,
node->datum.u.xperms->perms.p[i];
}
} else {
BUG();
pr_warn_once("SELinux: unknown specified key (%u)\n",
node->key.specified);
}
}