mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 00:04:15 +08:00
netfilter pull request 24-10-21
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEjF9xRqF1emXiQiqU1w0aZmrPKyEFAmcWIBEACgkQ1w0aZmrP KyHRmhAAvR7+UjYFSg9jK7rczu16+s2Uf6B0z9FqSo0VHJOmrAAJqhiAkTofy9yz WO3CGm5Fmzf6uSo88Y8ngHpbmZprot3NocIq2y4lJqHsmEA2PTy2Ig3DgXW7anku OQlDOXabjkuW223mWqba+aV2qsARQrjp9EwRb89Stuqc4hCoNn+8j7l48Tbu1pyc a8V5tIfoUxGf2nYkub4Ykf1TbKBuEZfuBQMZU8N5NATahi2SqCtbF5ztmkyJnGwW kg/aNfFAvnHJYhTwGMG2bYKdFczLgMxgf4PipDqfFWChIBC4OUr8Kl4+NIRoGu5S foGoGAQmsgc3bS9N06L+mr5GznW2XAkOvOpeSJNK9vBK5T/GiDN8XUd1P+/K3G/a W780PW4qIzIWmvIEZ7lmbvfrJHQrCMDYecOsagl9PLW7TuFJfodPAUGa2TwnEX5j ckERb5djVa//rzEYcLj9QHvqfRE3/T74Z/YfvkJiIVlso36hYVnTnD4tt8Yn64Lc u458E/V1/wYRar2boRExDWfMv8seGkpJvIefqetZqr7sBjh64Oeoijb4r9+YJJql mO39kOyYDRfgVxirZ/CglN/YPIwuDjFHUvkWJj4GyqixkyAo9FJTDYoPBihS0SFS ANmVukRcXAG+cPVMnzbJnXzUA0Q9ZMean7jY92hum57QRyinS/U= =cTcY -----END PGP SIGNATURE----- Merge tag 'nf-24-10-21' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf Pablo Neira Ayuso says: ==================== This patchset contains Netfilter fixes for net: 1) syzkaller managed to triger UaF due to missing reference on netns in bpf infrastructure, from Florian Westphal. 2) Fix incorrect conversion from NFPROTO_UNSPEC to NFPROTO_{IPV4,IPV6} in the following xtables targets: MARK and NFLOG. Moreover, add missing I have my half share in this mistake, I did not take the necessary time to review this: For several years I have been struggling to keep working on Netfilter, juggling a myriad of side consulting projects to stop burning my own savings. I have extended the iptables-tests.py test infrastructure to improve the coverage of ip6tables and detect similar problems in the future. This is a v2 including a extended PR with one more fix. netfilter pull request 24-10-21 * tag 'nf-24-10-21' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf: netfilter: xtables: fix typo causing some targets not to load on IPv6 netfilter: bpf: must hold reference on net namespace ==================== Link: https://patch.msgid.link/20241021094536.81487-1-pablo@netfilter.org Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
commit
fa287557e6
@ -23,6 +23,7 @@ static unsigned int nf_hook_run_bpf(void *bpf_prog, struct sk_buff *skb,
|
|||||||
struct bpf_nf_link {
|
struct bpf_nf_link {
|
||||||
struct bpf_link link;
|
struct bpf_link link;
|
||||||
struct nf_hook_ops hook_ops;
|
struct nf_hook_ops hook_ops;
|
||||||
|
netns_tracker ns_tracker;
|
||||||
struct net *net;
|
struct net *net;
|
||||||
u32 dead;
|
u32 dead;
|
||||||
const struct nf_defrag_hook *defrag_hook;
|
const struct nf_defrag_hook *defrag_hook;
|
||||||
@ -120,6 +121,7 @@ static void bpf_nf_link_release(struct bpf_link *link)
|
|||||||
if (!cmpxchg(&nf_link->dead, 0, 1)) {
|
if (!cmpxchg(&nf_link->dead, 0, 1)) {
|
||||||
nf_unregister_net_hook(nf_link->net, &nf_link->hook_ops);
|
nf_unregister_net_hook(nf_link->net, &nf_link->hook_ops);
|
||||||
bpf_nf_disable_defrag(nf_link);
|
bpf_nf_disable_defrag(nf_link);
|
||||||
|
put_net_track(nf_link->net, &nf_link->ns_tracker);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,6 +259,8 @@ int bpf_nf_link_attach(const union bpf_attr *attr, struct bpf_prog *prog)
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_net_track(net, &link->ns_tracker, GFP_KERNEL);
|
||||||
|
|
||||||
return bpf_link_settle(&link_primer);
|
return bpf_link_settle(&link_primer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ static struct xt_target nflog_tg_reg[] __read_mostly = {
|
|||||||
{
|
{
|
||||||
.name = "NFLOG",
|
.name = "NFLOG",
|
||||||
.revision = 0,
|
.revision = 0,
|
||||||
.family = NFPROTO_IPV4,
|
.family = NFPROTO_IPV6,
|
||||||
.checkentry = nflog_tg_check,
|
.checkentry = nflog_tg_check,
|
||||||
.destroy = nflog_tg_destroy,
|
.destroy = nflog_tg_destroy,
|
||||||
.target = nflog_tg,
|
.target = nflog_tg,
|
||||||
|
@ -49,6 +49,7 @@ static struct xt_target trace_tg_reg[] __read_mostly = {
|
|||||||
.target = trace_tg,
|
.target = trace_tg,
|
||||||
.checkentry = trace_tg_check,
|
.checkentry = trace_tg_check,
|
||||||
.destroy = trace_tg_destroy,
|
.destroy = trace_tg_destroy,
|
||||||
|
.me = THIS_MODULE,
|
||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
@ -62,7 +62,7 @@ static struct xt_target mark_tg_reg[] __read_mostly = {
|
|||||||
{
|
{
|
||||||
.name = "MARK",
|
.name = "MARK",
|
||||||
.revision = 2,
|
.revision = 2,
|
||||||
.family = NFPROTO_IPV4,
|
.family = NFPROTO_IPV6,
|
||||||
.target = mark_tg,
|
.target = mark_tg,
|
||||||
.targetsize = sizeof(struct xt_mark_tginfo2),
|
.targetsize = sizeof(struct xt_mark_tginfo2),
|
||||||
.me = THIS_MODULE,
|
.me = THIS_MODULE,
|
||||||
|
Loading…
Reference in New Issue
Block a user