All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] netfilter: account ebt_table_info to kmemcg
@ 2018-12-29  1:55 ` Shakeel Butt
  0 siblings, 0 replies; 34+ messages in thread
From: Shakeel Butt @ 2018-12-29  1:55 UTC (permalink / raw)
  To: Pablo Neira Ayuso, Florian Westphal, Jozsef Kadlecsik,
	Roopa Prabhu, Nikolay Aleksandrov, Michal Hocko, Andrew Morton
  Cc: linux-mm, netfilter-devel, coreteam, bridge, linux-kernel,
	Shakeel Butt, syzbot+7713f3aa67be76b1552c

The [ip,ip6,arp]_tables use x_tables_info internally and the underlying
memory is already accounted to kmemcg. Do the same for ebtables. The
syzbot, by using setsockopt(EBT_SO_SET_ENTRIES), was able to OOM the
whole system from a restricted memcg, a potential DoS.

Reported-by: syzbot+7713f3aa67be76b1552c@syzkaller.appspotmail.com
Signed-off-by: Shakeel Butt <shakeelb@google.com>
---
 net/bridge/netfilter/ebtables.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
index 491828713e0b..5e55cef0cec3 100644
--- a/net/bridge/netfilter/ebtables.c
+++ b/net/bridge/netfilter/ebtables.c
@@ -1137,14 +1137,16 @@ static int do_replace(struct net *net, const void __user *user,
 	tmp.name[sizeof(tmp.name) - 1] = 0;
 
 	countersize = COUNTER_OFFSET(tmp.nentries) * nr_cpu_ids;
-	newinfo = vmalloc(sizeof(*newinfo) + countersize);
+	newinfo = __vmalloc(sizeof(*newinfo) + countersize, GFP_KERNEL_ACCOUNT,
+			    PAGE_KERNEL);
 	if (!newinfo)
 		return -ENOMEM;
 
 	if (countersize)
 		memset(newinfo->counters, 0, countersize);
 
-	newinfo->entries = vmalloc(tmp.entries_size);
+	newinfo->entries = __vmalloc(tmp.entries_size, GFP_KERNEL_ACCOUNT,
+				     PAGE_KERNEL);
 	if (!newinfo->entries) {
 		ret = -ENOMEM;
 		goto free_newinfo;
-- 
2.20.1.415.g653613c723-goog


^ permalink raw reply related	[flat|nested] 34+ messages in thread

end of thread, other threads:[~2019-01-04 13:22 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-29  1:55 [PATCH] netfilter: account ebt_table_info to kmemcg Shakeel Butt
2018-12-29  1:55 ` [Bridge] " Shakeel Butt
2018-12-29  1:55 ` Shakeel Butt
2018-12-29  7:33 ` Michal Hocko
2018-12-29  7:33   ` [Bridge] " Michal Hocko
2018-12-29  9:52   ` Florian Westphal
2018-12-29  9:52     ` [Bridge] " Florian Westphal
2018-12-29 10:06     ` Michal Hocko
2018-12-29 10:06       ` [Bridge] " Michal Hocko
2018-12-29 19:34       ` Shakeel Butt
2018-12-29 19:34         ` [Bridge] " Shakeel Butt
2018-12-29 19:34         ` Shakeel Butt
2018-12-30  7:45         ` Michal Hocko
2018-12-30  7:45           ` [Bridge] " Michal Hocko
2018-12-30  8:00           ` Michal Hocko
2018-12-30  8:00             ` [Bridge] " Michal Hocko
2018-12-31  3:59             ` Shakeel Butt
2018-12-31  3:59               ` [Bridge] " Shakeel Butt
2018-12-31  3:59               ` Shakeel Butt
2018-12-31 10:11               ` Michal Hocko
2018-12-31 10:11                 ` [Bridge] " Michal Hocko
2019-01-03 20:52                 ` Shakeel Butt
2019-01-03 20:52                   ` [Bridge] " Shakeel Butt
2019-01-03 20:52                   ` Shakeel Butt
2019-01-04 13:21                   ` Michal Hocko
2019-01-04 13:21                     ` [Bridge] " Michal Hocko
2018-12-31  4:00           ` Shakeel Butt
2018-12-31  4:00             ` [Bridge] " Shakeel Butt
2018-12-31  4:00             ` Shakeel Butt
2018-12-29  9:52   ` Kirill Tkhai
2018-12-29  9:52     ` [Bridge] " Kirill Tkhai
2018-12-29 19:39     ` Shakeel Butt
2018-12-29 19:39       ` [Bridge] " Shakeel Butt
2018-12-29 19:39       ` Shakeel Butt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.