Florian Westphal
ea52aeeb0d
netfilter: nfnetlink_queue: fix OOB when mac header was cleared
...
[ Upstream commit 5648b5e116 ]
On 64bit platforms the MAC header is set to 0xffff on allocation and
also when a helper like skb_unset_mac_header() is called.
dev_parse_header may call skb_mac_header() which assumes valid mac offset:
BUG: KASAN: use-after-free in eth_header_parse+0x75/0x90
Read of size 6 at addr ffff8881075a5c05 by task nf-queue/1364
Call Trace:
memcpy+0x20/0x60
eth_header_parse+0x75/0x90
__nfqnl_enqueue_packet+0x1a61/0x3380
__nf_queue+0x597/0x1300
nf_queue+0xf/0x40
nf_hook_slow+0xed/0x190
nf_hook+0x184/0x440
ip_output+0x1c0/0x2a0
nf_reinject+0x26f/0x700
nfqnl_recv_verdict+0xa16/0x18b0
nfnetlink_rcv_msg+0x506/0xe70
The existing code only works if the skb has a mac header.
Fixes: 2c38de4c1f ("netfilter: fix looped (broad|multi)cast's MAC handling")
Signed-off-by: Florian Westphal <fw@strlen.de >
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2021-11-17 11:04:36 +01:00
..
2021-10-07 07:53:19 +02:00
2021-10-27 09:59:35 +02:00
2020-10-12 01:57:34 +02:00
2021-10-27 09:59:48 +02:00
2021-06-17 03:23:00 +02:00
2019-05-21 10:50:45 +02:00
2021-03-28 17:31:14 -07:00
2019-07-16 13:16:59 +02:00
2019-07-16 13:16:59 +02:00
2021-10-07 07:53:19 +02:00
2021-06-07 12:23:37 +02:00
2021-06-07 12:23:37 +02:00
2019-12-17 22:59:31 +01:00
2021-05-05 23:45:48 +02:00
2020-07-22 01:18:05 +02:00
2021-06-01 23:53:51 +02:00
2019-06-19 17:09:52 +02:00
2021-06-07 12:23:37 +02:00
2021-05-05 23:45:48 +02:00
2019-08-27 18:07:03 +02:00
2019-05-30 11:26:32 -07:00
2021-07-02 02:29:20 +02:00
2021-05-05 23:45:48 +02:00
2021-06-18 14:47:43 +02:00
2019-06-19 17:09:55 +02:00
2021-07-02 02:07:01 +02:00
2021-06-18 14:47:43 +02:00
2021-06-18 14:47:43 +02:00
2021-06-18 14:47:43 +02:00
2021-08-06 17:07:41 +02:00
2021-11-17 11:03:56 +01:00
2021-07-02 02:07:01 +02:00
2021-05-05 23:45:48 +02:00
2019-05-31 18:02:45 +02:00
2019-07-16 13:16:59 +02:00
2019-05-30 11:26:32 -07:00
2021-08-06 17:07:41 +02:00
2019-07-16 13:16:59 +02:00
2019-09-13 12:33:06 +02:00
2019-05-24 17:37:51 +02:00
2020-10-22 14:49:36 +02:00
2021-08-06 17:07:41 +02:00
2020-06-25 00:50:31 +02:00
2021-03-31 22:34:11 +02:00
2021-09-18 13:43:53 +02:00
2020-05-27 22:20:34 +02:00
2021-04-26 03:20:47 +02:00
2021-03-31 22:34:11 +02:00
2019-07-16 13:16:59 +02:00
2021-04-26 03:20:07 +02:00
2019-07-16 13:16:59 +02:00
2019-06-22 08:59:24 -04:00
2019-07-16 13:16:59 +02:00
2021-10-17 10:44:49 +02:00
2021-04-26 03:20:07 +02:00
2019-06-22 08:59:24 -04:00
2019-07-16 13:16:59 +02:00
2019-07-16 13:16:59 +02:00
2020-03-29 16:28:29 +02:00
2020-07-24 15:41:54 -07:00
2021-06-10 14:26:18 -07:00
2021-10-13 09:41:56 +02:00
2021-06-17 03:23:00 +02:00
2021-09-18 13:43:53 +02:00
2021-05-29 01:04:54 +02:00
2021-05-29 01:04:53 +02:00
2021-06-07 13:01:52 -07:00
2021-05-29 01:04:53 +02:00
2021-08-06 17:07:41 +02:00
2021-06-07 12:23:36 +02:00
2021-05-05 22:26:09 +02:00
2021-11-17 11:04:36 +01:00
2021-06-07 12:41:10 +02:00
2021-01-27 23:16:02 +01:00
2021-01-27 23:16:02 +01:00
2021-10-27 09:59:34 +02:00
2021-05-29 01:04:54 +02:00
2021-05-29 01:04:54 +02:00
2021-04-18 22:02:21 +02:00
2021-10-07 07:53:11 +02:00
2020-06-25 00:50:31 +02:00
2021-04-18 22:04:49 +02:00
2021-09-22 12:39:28 +02:00
2021-01-27 22:53:29 +01:00
2021-11-17 11:04:04 +01:00
2021-06-29 15:45:27 -07:00
2020-06-25 00:50:31 +02:00
2020-06-25 00:50:31 +02:00
2021-01-27 23:16:02 +01:00
2021-05-29 01:04:54 +02:00
2021-01-27 22:53:29 +01:00
2021-01-27 23:16:02 +01:00
2021-01-27 23:16:02 +01:00
2021-07-23 14:18:02 +02:00
2021-04-10 21:15:35 +02:00
2021-03-31 22:34:11 +02:00
2021-05-29 01:04:27 +02:00
2021-01-27 22:53:29 +01:00
2021-01-27 23:16:02 +01:00
2021-07-23 14:18:03 +02:00
2021-01-27 23:16:02 +01:00
2021-05-28 21:11:41 +02:00
2021-06-16 20:51:50 +02:00
2021-05-29 01:04:54 +02:00
2021-01-27 22:53:29 +01:00
2021-10-13 09:41:56 +02:00
2021-01-27 22:53:29 +01:00
2021-01-27 22:53:29 +01:00
2021-05-29 01:04:53 +02:00
2020-10-31 10:41:00 +01:00
2020-10-31 10:40:42 +01:00
2021-01-27 23:16:02 +01:00
2021-05-29 01:04:27 +02:00
2021-05-29 01:04:27 +02:00
2021-06-01 23:53:51 +02:00
2021-05-29 01:04:27 +02:00
2021-05-14 01:42:52 +02:00
2021-05-29 01:04:27 +02:00
2021-05-29 01:04:27 +02:00
2021-04-27 22:34:05 +02:00
2021-05-29 01:04:54 +02:00
2021-06-29 15:45:27 -07:00
2021-01-27 23:16:02 +01:00
2021-01-27 23:16:02 +01:00
2020-10-30 12:57:39 +01:00
2021-04-26 18:16:56 +02:00
2019-06-19 17:09:55 +02:00
2021-06-01 23:53:51 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:45 +02:00
2018-02-14 21:05:38 +01:00
2019-06-19 17:09:55 +02:00
2019-09-13 12:33:06 +02:00
2020-07-29 20:09:18 +02:00
2020-07-29 20:09:18 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2021-05-29 01:04:53 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-22 08:59:24 -04:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2020-03-15 15:20:16 +01:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-22 08:59:24 -04:00
2020-08-28 19:55:51 +02:00
2021-10-27 09:59:34 +02:00
2019-05-30 11:26:32 -07:00
2019-06-25 01:32:59 +02:00
2019-05-21 10:50:45 +02:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:38 -07:00
2019-06-19 17:09:55 +02:00
2021-05-29 01:04:52 +02:00
2021-10-07 07:53:11 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2020-06-25 00:50:31 +02:00
2019-06-19 17:09:55 +02:00
2020-12-01 09:45:29 +01:00
2021-10-07 07:53:11 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 11:28:45 +02:00
2019-06-25 01:32:59 +02:00
2019-09-13 12:32:48 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 10:50:45 +02:00
2019-06-19 17:09:55 +02:00
2020-12-27 11:52:26 +01:00
2019-06-19 17:09:55 +02:00
2021-02-04 00:33:08 +01:00
2019-06-19 17:09:55 +02:00
2017-11-02 11:10:55 +01:00
2019-05-21 10:50:45 +02:00
2021-05-03 23:02:44 +02:00
2019-08-13 12:14:26 +02:00
2021-04-26 03:20:07 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-22 08:59:24 -04:00
2019-06-22 08:59:24 -04:00
2019-05-21 10:50:45 +02:00
2019-05-21 11:28:40 +02:00
2020-07-29 20:09:18 +02:00
2021-04-26 03:20:07 +02:00
2021-03-31 22:34:10 +02:00
2019-05-21 10:50:45 +02:00