Patch "netfilter: xt_osf: Add missing permission checks" has been added to the 4.14-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
netfilter: xt_osf: Add missing permission checks
to the 4.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
netfilter-xt_osf-add-missing-permission-checks.patch
and it can be found in the queue-4.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
916a27901de01446bcf57ecca4783f6cff493309Mon Sep 17 00:00:00 2001
From: Kevin Cernekee <[email protected]>
Date: Tue, 5 Dec 2017 15:42:41 -0800
Subject: netfilter: xt_osf: Add missing permission checks
From: Kevin Cernekee <[email protected]>
commit 916a27901de01446bcf57ecca4783f6cff493309 upstream.
The capability check in nfnetlink_rcv() verifies that the caller has CAP_NET_ADMIN in the namespace that "owns" the netlink socket. However, xt_osf_fingers is shared by all net namespaces on the system. An unprivileged user can create user and net namespaces in which he holds CAP_NET_ADMIN to bypass the netlink_net_capable() check:
vpnns -- nfnl_osf -f /tmp/pf.os
vpnns -- nfnl_osf -f /tmp/pf.os -d
These non-root operations successfully modify the systemwide OS fingerprint list. Add new capable() checks so that they can't.
--- net/netfilter/xt_osf.c | 7 +++++++ 1 file changed, 7 insertions(+)
net/netfilter/xt_osf.c +7 -0
@@ -19,6 +19,7 @@#include <linux/module.h> #include <linux/kernel.h> +#include <linux/capability.h> #include <linux/if.h> #include <linux/inetdevice.h> #include <linux/ip.h>
@@ -70,6 +71,9 @@ static int xt_osf_add_callback(struct nestruct xt_osf_finger *kf =NULL , *sf;int err =0 ; +if (!capable (CAP_NET_ADMIN )) +return -EPERM ; +if (!osf_attrs[OSF_ATTR_FINGER ])return -EINVAL ;
@@ -115,6 +119,9 @@ static int xt_osf_remove_callback(structstruct xt_osf_finger *sf;int err = -ENOENT ; +if (!capable (CAP_NET_ADMIN )) +return -EPERM ; +if (!osf_attrs[OSF_ATTR_FINGER ])return -EINVAL ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.14/netfilter-xt_osf-add-missing-permission-checks.patch queue-4.14/netfilter-nfnetlink_cthelper-add-missing-permission-checks.patch