History

Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf

Pablo Neira Ayuso says: ==================== Netfilter fixes for net The following patchset contains two bugfixes for your net tree, they are: 1) Validate netlink group from nfnetlink to avoid an out of bound array access. This should only happen with superuser priviledges though. Discovered by Andrey Ryabinin using trinity. 2) Don't push ethernet header before calling the netfilter output hook for multicast traffic, this breaks ebtables since it expects to see skb->data pointing to the network header, patch from Linus Luessing. ====================

David S. Miller committed 11 years ago

Commit 7e09dcc2 parents c857781 f0b4eec2 files · +12 −3Browse files

Unified · Split

2 files
  1. net/bridge/br_multicast.c +1 −2
  2. net/netfilter/nfnetlink.c +11 −1
net/bridge/br_multicast.c+1−2
@@ -813,10 +813,9 @@ static void __br_multicast_send_query(struct net_bridge *br, · 812 unmodified lines
813813 return;
814814
815815 if (port) {
816− __skb_push(skb, sizeof(struct ethhdr));
817816 skb->dev = port->dev;
818817 NF_HOOK(NFPROTO_BRIDGE, NF_BR_LOCAL_OUT, skb, NULL, skb->dev,
819− dev_queue_xmit);
818+ br_dev_queue_push_xmit);
820819 } else {
821820 br_multicast_select_own_querier(br, ip, skb);
822821 netif_rx(skb);
net/netfilter/nfnetlink.c+11−1
@@ -47,6 +47,8 @@ static const int nfnl_group2type[NFNLGRP_MAX+1] = { · 46 unmodified lines
4747 [NFNLGRP_CONNTRACK_EXP_NEW] = NFNL_SUBSYS_CTNETLINK_EXP,
4848 [NFNLGRP_CONNTRACK_EXP_UPDATE] = NFNL_SUBSYS_CTNETLINK_EXP,
4949 [NFNLGRP_CONNTRACK_EXP_DESTROY] = NFNL_SUBSYS_CTNETLINK_EXP,
50+ [NFNLGRP_NFTABLES] = NFNL_SUBSYS_NFTABLES,
51+ [NFNLGRP_ACCT_QUOTA] = NFNL_SUBSYS_ACCT,
5052 };
5153
5254 void nfnl_lock(__u8 subsys_id)
@@ -464,7 +466,12 @@ static void nfnetlink_rcv(struct sk_buff *skb) · 411 unmodified lines
464466 static int nfnetlink_bind(int group)
465467 {
466468 const struct nfnetlink_subsystem *ss;
467− int type = nfnl_group2type[group];
469+ int type;
470+
471+ if (group <= NFNLGRP_NONE || group > NFNLGRP_MAX)
472+ return -EINVAL;
473+
474+ type = nfnl_group2type[group];
468475
469476 rcu_read_lock();
470477 ss = nfnetlink_get_subsys(type);
@@ -514,6 +521,9 @@ static int __init nfnetlink_init(void) · 43 unmodified lines
514521 {
515522 int i;
516523
524+ for (i = NFNLGRP_NONE + 1; i <= NFNLGRP_MAX; i++)
525+ BUG_ON(nfnl_group2type[i] == NFNL_SUBSYS_NONE);
526+
517527 for (i=0; i<NFNL_SUBSYS_COUNT; i++)
518528 mutex_init(&table[i].mutex);
519529

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t