From: Pablo Neira Ayuso <pablo@netfilter.org>
To: Florian Westphal <fw@strlen.de>
Cc: netfilter-devel@vger.kernel.org
Subject: Re: [PATCH nft] evaluate: don't allow nat map with specified protocol
Date: Thu, 20 Mar 2025 10:34:24 +0100 [thread overview]
Message-ID: <Z9vhIHU9pp4mMe8I@calendula> (raw)
In-Reply-To: <20250320083944.12541-1-fw@strlen.de>
On Thu, Mar 20, 2025 at 09:39:20AM +0100, Florian Westphal wrote:
> Included bogon asserts:
> src/netlink_linearize.c:1305: netlink_gen_nat_stmt: Assertion `stmt->nat.proto == NULL' failed.
>
> The comment right above the assertion says:
> nat_stmt evaluation step doesn't allow
> STMT_NAT_F_CONCAT && stmt->nat.proto.
Oops.
> ... except it does allow it. Disable this.
>
> Fixes: c68314dd4263 ("src: infer NAT mapping with concatenation from set")
> Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Pablo Neira Ayuso <pablo@netfilter.org>
Thanks.
> ---
> src/evaluate.c | 4 ++++
> tests/shell/testcases/bogons/nat_map_and_protocol_assert | 5 +++++
> 2 files changed, 9 insertions(+)
> create mode 100644 tests/shell/testcases/bogons/nat_map_and_protocol_assert
>
> diff --git a/src/evaluate.c b/src/evaluate.c
> index 95b9b3d547d9..3a453d010538 100644
> --- a/src/evaluate.c
> +++ b/src/evaluate.c
> @@ -4196,6 +4196,10 @@ static int stmt_evaluate_nat_map(struct eval_ctx *ctx, struct stmt *stmt)
> int addr_type;
> int err;
>
> + if (stmt->nat.proto)
> + return stmt_binary_error(ctx, stmt, stmt->nat.proto,
> + "nat map and protocol are mutually exclusive");
> +
> if (stmt->nat.family == NFPROTO_INET)
> expr_family_infer(pctx, stmt->nat.addr, &stmt->nat.family);
>
> diff --git a/tests/shell/testcases/bogons/nat_map_and_protocol_assert b/tests/shell/testcases/bogons/nat_map_and_protocol_assert
> new file mode 100644
> index 000000000000..67f2ae873cd1
> --- /dev/null
> +++ b/tests/shell/testcases/bogons/nat_map_and_protocol_assert
> @@ -0,0 +1,5 @@
> +table t {
> + chain y {
> + snat to ip saddr . tcp sport map { 1.1.1.1 . 1 : 1.1.1.2 . 1 } : 6
> + }
> +}
> --
> 2.48.1
>
>
prev parent reply other threads:[~2025-03-20 9:34 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-20 8:39 [PATCH nft] evaluate: don't allow nat map with specified protocol Florian Westphal
2025-03-20 9:34 ` Pablo Neira Ayuso [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z9vhIHU9pp4mMe8I@calendula \
--to=pablo@netfilter.org \
--cc=fw@strlen.de \
--cc=netfilter-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.