Taehee Yoo
d71efb599a
netfilter: nf_tables: fix out-of-bounds in nft_chain_commit_update
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>
2018-04-19 12:34:13 +02:00
..
2017-11-02 11:10:55 +01:00
2018-02-15 14:29:27 -08:00
2017-11-21 15:57:07 -08:00
2018-04-01 20:53:50 -04:00
2018-03-26 12:07:48 -04:00
2018-03-26 12:07:48 -04:00
2018-03-26 12:07:48 -04:00
2018-04-01 19:49:34 -04:00
2018-04-08 17:19:15 -04:00
2018-02-01 07:43:56 -08:00
2018-04-09 17:05:48 +02:00
2018-03-27 13:18:09 -04:00
2018-03-27 13:18:09 -04:00
2018-03-26 12:07:48 -04:00
2018-04-08 12:45:57 -04:00
2018-04-07 22:32:31 -04:00
2018-03-26 12:07:48 -04:00
2018-03-26 12:07:48 -04:00
2018-04-08 10:34:49 -04:00
2017-10-25 13:00:27 +09:00
2018-04-04 12:04:59 -04:00
2017-11-01 12:19:03 +09:00
2018-04-09 10:57:35 -04:00
2018-04-19 12:31:34 +02:00
2018-03-23 11:31:58 -04:00
2018-03-27 13:18:09 -04:00
2018-03-27 13:18:09 -04:00
2018-03-27 13:18:09 -04:00
2017-11-21 16:35:54 -08:00
2018-04-01 19:49:34 -04:00
2018-03-29 16:23:26 -04:00
2018-03-28 22:55:18 +02:00
2018-03-27 13:18:09 -04:00
2018-03-27 10:38:26 -04:00
2018-04-19 12:34:13 +02:00
2017-11-18 10:32:41 +09:00
2018-04-07 22:32:31 -04:00
2018-03-26 12:07:48 -04:00
2018-02-19 18:46:11 -05:00
2017-11-08 16:12:33 +09:00
2018-03-29 13:47:54 -04:00
2018-03-27 13:18:09 -04:00
2018-03-27 13:18:09 -04:00
2017-11-01 12:19:03 +09:00
2018-03-06 01:20:46 -05:00
2018-03-27 13:18:09 -04:00
2018-02-11 14:34:03 -08:00
2018-03-26 12:07:48 -04:00
2018-04-04 11:04:08 -04:00
2018-04-07 12:36:45 -04:00
2018-04-08 12:29:41 -04:00
2018-04-01 19:49:34 -04:00
2018-03-27 11:00:18 -04:00
2018-03-27 13:18:09 -04:00
2017-11-10 13:41:40 +09:00
2018-04-08 12:34:29 -04:00
2018-03-31 23:37:32 -04:00
2018-04-04 11:13:40 -04:00
2018-02-12 14:15:04 -05:00
2017-11-02 11:10:55 +01:00
2018-03-31 23:33:04 -04:00
2018-03-26 12:07:48 -04:00
2018-04-01 19:49:34 -04:00
2018-04-02 20:15:20 +02:00
2018-02-01 09:51:57 -08:00
2017-11-28 13:55:00 +01:00
2018-04-03 14:04:18 -07:00
2018-03-27 13:18:09 -04:00