Commit 76319946 authored by Vladis Dronov's avatar Vladis Dronov Committed by Paul Moore

selinux: rate-limit netlink message warnings in selinux_nlmsg_perm()

Any process is able to send netlink messages with invalid types.
Make the warning rate-limited to prevent too much log spam.

The warning is supposed to help to find misbehaving programs, so
print the triggering command name and pid.
Reported-by: default avatarFlorian Weimer <fweimer@redhat.com>
Signed-off-by: default avatarVladis Dronov <vdronov@redhat.com>
[PM: subject line tweak to make checkpatch.pl happy]
Signed-off-by: default avatarPaul Moore <pmoore@redhat.com>
parent f9df6458
...@@ -4858,11 +4858,12 @@ static int selinux_nlmsg_perm(struct sock *sk, struct sk_buff *skb) ...@@ -4858,11 +4858,12 @@ static int selinux_nlmsg_perm(struct sock *sk, struct sk_buff *skb)
err = selinux_nlmsg_lookup(sksec->sclass, nlh->nlmsg_type, &perm); err = selinux_nlmsg_lookup(sksec->sclass, nlh->nlmsg_type, &perm);
if (err) { if (err) {
if (err == -EINVAL) { if (err == -EINVAL) {
printk(KERN_WARNING pr_warn_ratelimited("SELinux: unrecognized netlink"
"SELinux: unrecognized netlink message:" " message: protocol=%hu nlmsg_type=%hu sclass=%s"
" protocol=%hu nlmsg_type=%hu sclass=%s\n", " pig=%d comm=%s\n",
sk->sk_protocol, nlh->nlmsg_type, sk->sk_protocol, nlh->nlmsg_type,
secclass_map[sksec->sclass - 1].name); secclass_map[sksec->sclass - 1].name,
task_pid_nr(current), current->comm);
if (!selinux_enforcing || security_get_allow_unknown()) if (!selinux_enforcing || security_get_allow_unknown())
err = 0; err = 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment