UPSTREAM: selinux: ignore unknown extended permissions

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: Thiébaud Weksteen <tweek@google.com>
Change-Id: I1689d8c5084a24c1a34ef3d15d71f8cfa4122447
This commit is contained in:
Thiébaud Weksteen
2024-12-05 12:09:19 +11:00
committed by Lee Jones
parent 1194f08d5c
commit 4cd26955b0

View File

@@ -954,7 +954,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) {
@@ -991,7 +994,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);
}
}