From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Congyu Liu <liu3101@purdue.edu>,
"David S. Miller" <davem@davemloft.net>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 4.4 15/25] net: fix information leakage in /proc/net/ptype
Date: Tue, 1 Feb 2022 19:16:39 +0100 [thread overview]
Message-ID: <20220201180822.645522157@linuxfoundation.org> (raw)
In-Reply-To: <20220201180822.148370751@linuxfoundation.org>
From: Congyu Liu <liu3101@purdue.edu>
commit 47934e06b65637c88a762d9c98329ae6e3238888 upstream.
In one net namespace, after creating a packet socket without binding
it to a device, users in other net namespaces can observe the new
`packet_type` added by this packet socket by reading `/proc/net/ptype`
file. This is minor information leakage as packet socket is
namespace aware.
Add a net pointer in `packet_type` to keep the net namespace of
of corresponding packet socket. In `ptype_seq_show`, this net pointer
must be checked when it is not NULL.
Fixes: 2feb27dbe00c ("[NETNS]: Minor information leak via /proc/net/ptype file.")
Signed-off-by: Congyu Liu <liu3101@purdue.edu>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
include/linux/netdevice.h | 1 +
net/core/net-procfs.c | 3 ++-
net/packet/af_packet.c | 2 ++
3 files changed, 5 insertions(+), 1 deletion(-)
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -2055,6 +2055,7 @@ struct packet_type {
struct net_device *);
bool (*id_match)(struct packet_type *ptype,
struct sock *sk);
+ struct net *af_packet_net;
void *af_packet_priv;
struct list_head list;
};
--- a/net/core/net-procfs.c
+++ b/net/core/net-procfs.c
@@ -277,7 +277,8 @@ static int ptype_seq_show(struct seq_fil
if (v == SEQ_START_TOKEN)
seq_puts(seq, "Type Device Function\n");
- else if (pt->dev == NULL || dev_net(pt->dev) == seq_file_net(seq)) {
+ else if ((!pt->af_packet_net || net_eq(pt->af_packet_net, seq_file_net(seq))) &&
+ (!pt->dev || net_eq(dev_net(pt->dev), seq_file_net(seq)))) {
if (pt->type == htons(ETH_P_ALL))
seq_puts(seq, "ALL ");
else
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -1709,6 +1709,7 @@ static int fanout_add(struct sock *sk, u
match->prot_hook.dev = po->prot_hook.dev;
match->prot_hook.func = packet_rcv_fanout;
match->prot_hook.af_packet_priv = match;
+ match->prot_hook.af_packet_net = read_pnet(&match->net);
match->prot_hook.id_match = match_fanout_group;
list_add(&match->list, &fanout_list);
}
@@ -3167,6 +3168,7 @@ static int packet_create(struct net *net
po->prot_hook.func = packet_rcv_spkt;
po->prot_hook.af_packet_priv = sk;
+ po->prot_hook.af_packet_net = sock_net(sk);
if (proto) {
po->prot_hook.type = proto;
next prev parent reply other threads:[~2022-02-01 18:17 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-01 18:16 [PATCH 4.4 00/25] 4.4.302-rc1 review Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 01/25] can: bcm: fix UAF of bcm op Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 02/25] Bluetooth: refactor malicious adv data check Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 03/25] s390/hypfs: include z/VM guests with access control group set Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 04/25] scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP devices Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 05/25] udf: Restore i_lenAlloc when inode expansion fails Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 06/25] udf: Fix NULL ptr deref when converting from inline format Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 07/25] PM: wakeup: simplify the output logic of pm_show_wakelocks() Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 08/25] serial: stm32: fix software flow control transfer Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 09/25] tty: n_gsm: fix SW flow control encoding/handling Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 10/25] tty: Add support for Brainboxes UC cards Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 11/25] usb-storage: Add unusual-devs entry for VL817 USB-SATA bridge Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 12/25] USB: core: Fix hang in usb_kill_urb by adding memory barriers Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 13/25] scsi: bnx2fc: Flush destroy_work queue before calling bnx2fc_interface_put() Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 14/25] ipv6_tunnel: Rate limit warning messages Greg Kroah-Hartman
2022-02-01 18:16 ` Greg Kroah-Hartman [this message]
2022-02-01 18:16 ` [PATCH 4.4 16/25] ipv4: avoid using shared IP generator for connected sockets Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 17/25] net-procfs: show net devices bound packet types Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 18/25] drm/msm: Fix wrong size calculation Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 19/25] hwmon: (lm90) Reduce maximum conversion rate for G781 Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 20/25] ipv4: raw: lock the socket in raw_bind() Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 21/25] ipv4: tcp: send zero IPID in SYNACK messages Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 22/25] Bluetooth: MGMT: Fix misplaced BT_HS check Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 23/25] Revert "drm/radeon/ci: disable mclk switching for high refresh rates (v2)" Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 24/25] Revert "tc358743: fix register i2c_rd/wr function fix" Greg Kroah-Hartman
2022-02-01 18:16 ` [PATCH 4.4 25/25] KVM: x86: Fix misplaced backport of "work around leak of uninitialized stack contents" Greg Kroah-Hartman
2022-02-01 19:46 ` [PATCH 4.4 00/25] 4.4.302-rc1 review Shuah Khan
2022-02-01 20:51 ` Shuah Khan
2022-02-01 20:54 ` Pavel Machek
2022-02-01 21:24 ` Guenter Roeck
2022-02-01 22:25 ` Shuah Khan
2022-02-02 8:02 ` Naresh Kamboju
2022-02-02 12:18 ` Slade Watkins
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220201180822.645522157@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=liu3101@purdue.edu \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).