Taehee Yoo
705fd60523
netfilter: nf_tables: fix out-of-bounds in nft_chain_commit_update
[ Upstream commit d71efb599a ]
When chain name is changed, nft_chain_commit_update is called.
In the nft_chain_commit_update, trans->ctx.chain->name has old chain name
and nft_trans_chain_name(trans) has new chain name.
If new chain name is longer than old chain name, KASAN warns
slab-out-of-bounds.
[ 175.015012] BUG: KASAN: slab-out-of-bounds in strcpy+0x9e/0xb0
[ 175.022735] Write of size 1 at addr ffff880114e022da by task iptables-compat/1458
[ 175.031353] CPU: 0 PID: 1458 Comm: iptables-compat Not tainted 4.16.0-rc7+ #146
[ 175.031353] Hardware name: To be filled by O.E.M. To be filled by O.E.M./Aptio CRB, BIOS 5.6.5 07/08/2015
[ 175.031353] Call Trace:
[ 175.031353] dump_stack+0x68/0xa0
[ 175.031353] print_address_description+0xd0/0x260
[ 175.031353] ? strcpy+0x9e/0xb0
[ 175.031353] kasan_report+0x234/0x350
[ 175.031353] __asan_report_store1_noabort+0x1c/0x20
[ 175.031353] strcpy+0x9e/0xb0
[ 175.031353] nf_tables_commit+0x1ccc/0x2990
[ 175.031353] nfnetlink_rcv+0x141e/0x16c0
[ 175.031353] ? nfnetlink_net_init+0x150/0x150
[ 175.031353] ? lock_acquire+0x370/0x370
[ 175.031353] ? lock_acquire+0x370/0x370
[ 175.031353] netlink_unicast+0x444/0x640
[ 175.031353] ? netlink_attachskb+0x700/0x700
[ 175.031353] ? _copy_from_iter_full+0x180/0x740
[ 175.031353] ? kasan_check_write+0x14/0x20
[ 175.031353] ? _copy_from_user+0x9b/0xd0
[ 175.031353] netlink_sendmsg+0x845/0xc70
[ ... ]
Steps to reproduce:
iptables-compat -N 1
iptables-compat -E 1 aaaaaaaaa
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-06-21 04:02:44 +09:00
..
2018-04-19 08:56:15 +02:00
2018-05-30 07:52:07 +02:00
2017-09-08 18:55:52 +02:00
2017-07-31 19:01:40 +02:00
2017-11-02 11:10:55 +01:00
2017-04-26 09:30:22 +02:00
2017-06-19 19:13:21 +02:00
2017-07-24 13:24:46 +02:00
2017-09-06 14:45:08 -07:00
2017-04-26 09:30:22 +02:00
2017-09-04 13:25:19 +02:00
2017-09-04 13:25:19 +02:00
2017-04-19 17:55:17 +02:00
2016-07-11 12:32:45 +02:00
2017-06-19 19:13:21 +02:00
2008-01-31 19:28:07 -08:00
2017-07-31 19:09:38 +02:00
2017-04-19 17:55:17 +02:00
2017-08-24 18:52:32 +02:00
2017-04-26 09:30:22 +02:00
2017-04-19 17:55:16 +02:00
2017-08-24 18:52:33 +02:00
2017-07-24 13:24:46 +02:00
2017-09-04 13:25:18 +02:00
2017-09-04 13:25:18 +02:00
2017-09-04 13:25:18 +02:00
2017-09-04 13:25:18 +02:00
2017-09-04 13:25:18 +02:00
2017-09-04 13:25:18 +02:00
2017-08-24 18:52:33 +02:00
2017-04-19 17:55:17 +02:00
2017-04-26 09:30:22 +02:00
2017-07-24 13:24:46 +02:00
2013-01-18 00:28:18 +01:00
2017-09-04 13:25:19 +02:00
2017-04-19 17:55:17 +02:00
2017-04-26 09:30:22 +02:00
2017-04-26 09:30:22 +02:00
2017-05-29 11:32:36 +02:00
2017-11-02 11:10:55 +01:00
2016-12-04 20:45:33 +01:00
2016-12-04 20:45:33 +01:00
2017-05-01 11:19:07 +02:00
2017-04-06 22:01:38 +02:00
2017-09-18 17:33:23 +02:00
2013-02-19 02:48:05 +01:00
2017-04-06 22:01:38 +02:00
2017-04-06 22:01:38 +02:00
2018-03-15 10:54:23 +01:00
2016-12-04 20:45:30 +01:00
2017-07-01 09:08:41 -07:00
2015-08-17 21:33:06 -07:00
2017-01-03 14:33:25 +01:00
2012-08-30 03:00:14 +02:00
2017-09-04 13:25:19 +02:00
2014-10-14 02:18:24 +02:00
2013-02-19 02:48:05 +01:00
2017-08-28 17:44:00 +02:00
2017-11-02 11:10:55 +01:00
2017-05-17 16:06:01 -04:00
2018-06-21 04:02:44 +09:00
2017-08-02 14:25:59 +02:00
2016-09-12 19:54:45 +02:00
2017-04-06 18:32:04 +02:00
2017-07-31 20:41:57 +02:00
2017-06-19 19:38:24 +02:00
2018-01-31 14:03:41 +01:00
2017-08-24 18:52:33 +02:00
2017-08-02 14:25:59 +02:00
2017-07-31 19:09:39 +02:00
2017-07-17 13:27:46 +02:00
2017-05-15 12:51:41 +02:00
2016-11-09 23:42:23 +01:00
2017-05-15 12:51:41 +02:00
2017-07-19 11:53:30 +02:00
2017-09-04 13:25:09 +02:00
2018-06-16 09:45:14 +02:00
2016-01-03 21:04:23 +01:00
2017-05-03 10:11:26 -04:00
2017-08-28 17:42:56 +02:00
2016-11-03 11:52:34 +01:00
2017-07-31 19:01:40 +02:00
2017-03-13 13:45:36 +01:00
2016-12-06 21:48:22 +01:00
2017-05-01 10:47:53 -04:00
2017-05-15 12:51:41 +02:00
2017-09-04 13:25:16 +02:00
2017-01-24 21:46:29 +01:00
2017-03-06 18:23:23 +01:00
2017-03-06 18:22:12 +01:00
2017-04-07 18:24:47 +02:00
2017-03-23 16:41:27 -07:00
2017-04-07 18:24:47 +02:00
2017-09-04 13:25:09 +02:00
2017-08-28 17:42:56 +02:00
2017-04-07 18:24:47 +02:00
2017-09-04 13:25:09 +02:00
2017-05-15 12:51:41 +02:00
2017-03-06 18:22:12 +01:00
2017-03-06 18:22:12 +01:00
2017-03-06 18:22:12 +01:00
2017-08-28 18:14:30 +02:00
2017-05-29 12:46:18 +02:00
2017-10-25 14:46:44 +02:00
2017-07-31 20:41:59 +02:00
2018-04-26 11:02:21 +02:00
2017-07-24 13:24:46 +02:00
2017-05-02 10:16:04 -04:00
2018-02-25 11:08:01 +01:00
2018-02-25 11:07:50 +01:00
2010-07-15 17:20:46 +02:00
2010-11-15 13:57:56 +01:00
2017-04-15 11:51:33 +02:00
2010-05-11 18:33:37 +02:00
2016-12-04 21:16:50 +01:00
2017-04-15 11:51:33 +02:00
2017-08-19 13:07:53 +02:00
2017-04-15 11:51:33 +02:00
2016-12-04 21:16:50 +01:00
2017-04-15 11:47:57 +02:00
2011-01-18 06:33:54 +01:00
2017-08-24 18:52:33 +02:00
2010-05-11 18:35:27 +02:00
2016-11-03 10:56:21 +01:00
2016-11-03 10:56:21 +01:00
2014-11-13 12:14:42 +01:00
2011-12-27 20:45:25 +01:00
2010-05-11 18:35:27 +02:00
2018-04-08 14:26:29 +02:00
2016-12-04 21:16:50 +01:00
2011-07-01 16:11:15 -07:00
2011-07-01 16:11:15 -07:00
2017-04-15 11:51:33 +02:00
2018-04-26 11:02:13 +02:00
2016-10-17 17:38:19 +02:00
2011-02-04 14:28:58 -08:00
2017-04-15 11:51:33 +02:00
2014-01-09 21:36:39 +01:00
2018-04-26 11:02:13 +02:00
2010-05-11 18:33:37 +02:00
2018-04-26 11:02:13 +02:00
2016-11-03 10:56:21 +01:00
2012-05-09 20:49:18 -04:00
2015-05-14 13:00:27 +02:00
2016-12-06 21:48:20 +01:00
2017-09-04 13:25:19 +02:00
2017-09-04 13:25:19 +02:00
2018-04-26 11:02:13 +02:00
2016-11-03 10:56:21 +01:00
2016-11-03 10:56:21 +01:00
2018-01-31 14:03:41 +01:00
2017-03-02 08:42:31 +01:00
2016-08-12 00:42:14 +02:00
2017-01-18 20:32:43 +01:00
2016-11-03 10:56:21 +01:00
2017-01-09 17:24:55 +01:00
2017-01-09 17:24:55 +01:00
2018-02-25 11:07:50 +01:00
2010-05-11 18:33:37 +02:00
2018-04-08 14:26:29 +02:00
2016-12-04 21:16:51 +01:00
2017-11-02 11:10:55 +01:00
2017-07-01 09:08:41 -07:00
2010-10-21 10:12:48 +11:00
2016-11-10 13:28:42 +01:00
2017-09-26 20:04:34 +02:00
2017-04-15 11:47:57 +02:00
2018-04-26 11:02:13 +02:00
2017-01-09 17:24:55 +01:00
2010-05-11 18:35:27 +02:00
2017-07-24 13:24:46 +02:00
2015-08-17 21:33:06 -07:00
2016-07-03 10:55:07 +02:00
2017-01-09 17:24:55 +01:00
2016-12-25 17:21:22 +01:00
2017-09-03 17:08:42 -07:00
2016-06-23 13:26:49 +02:00
2010-05-11 18:33:37 +02:00