Skip to content

Commit 47b99a3

Browse files
Florian Westphalgregkh
authored andcommitted
netfilter: nf_tables: fix oob access
[ Upstream commit 3e38df136e453aa69eb4472108ebce2fb00b1ba6 ] BUG: KASAN: slab-out-of-bounds in nf_tables_rule_destroy+0xf1/0x130 at addr ffff88006a4c35c8 Read of size 8 by task nft/1607 When we've destroyed last valid expr, nft_expr_next() returns an invalid expr. We must not dereference it unless it passes != nft_expr_last() check. Signed-off-by: Florian Westphal <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> Signed-off-by: Sasha Levin <alexander.levin@verizon.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent a1e4f6a commit 47b99a3

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

net/netfilter/nf_tables_api.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1996,7 +1996,7 @@ static void nf_tables_rule_destroy(const struct nft_ctx *ctx,
19961996
* is called on error from nf_tables_newrule().
19971997
*/
19981998
expr = nft_expr_first(rule);
1999-
while (expr->ops && expr != nft_expr_last(rule)) {
1999+
while (expr != nft_expr_last(rule) && expr->ops) {
20002000
nf_tables_expr_destroy(ctx, expr);
20012001
expr = nft_expr_next(expr);
20022002
}

0 commit comments

Comments
 (0)