4.9 kernel panic in netlink unicast because audit replace passing audit sock as NULL
(too old to reply)
Paul Moore
2018-10-12 04:15:07 UTC
we got one kernel panic on 4.9 kernel
[16237.397896] [2018:10:09 23:06:55]audit: audit_pid=20802 reset
[16238.098916] [2018:10:09 23:06:57]Unable to handle kernel NULL pointer dereference at virtual address 00000280
audit_sock is set to NULL in kauditd_send_skb, but later we are access it again in audit_replace caused this panic.
is there patch for such SW issue on 4.9 kernel ?
static int audit_replace(pid_t pid)
struct sk_buff *skb = audit_make_reply(0, 0, AUDIT_REPLACE, 0, 0,
&pid, sizeof(pid));
if (!skb)
return -ENOMEM;
return netlink_unicast(audit_sock, skb, audit_nlk_portid, 0);

Have you been able to reproduce this problem on a recent kernel? Unfortunately there have been some major changes to that area of the code since v4.9 and it is very likely that we have fixed this issue in the current upstream kernel.

paul moore
Paul Moore
2018-10-13 15:57:09 UTC
it is hard to running on upstream kernel on my hardware.
I checked the kernel log that we can see that we are trying to send the sock to task 20802, but it was killed already.
is there any suggest that we can pick up some patches to backport to 4.9 to try ?
There have been numerous patches which could be applicable to your
problem, starting in v4.10 through v4.15. Since this is an old kernel
from an upstream community perspective I would suggest reaching out to
your Linux distribution's support channels to see if they can help
you. If that is not an option, you can see all of the audit patches
from the audit team in the audit kernel repo broken down by release at
the following location:

* git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit.git
* https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit.git

... patches for Linux vX.Y can be found in branches stable-X.Y.
paul moore
Continue reading on narkive: