From c8a3c669499d169fef8c1e89b8d2d909e5ecd023 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Mon, 31 Oct 2022 11:35:31 +0100 Subject: payload: do not kill dependency for proto_unknown Unsupported meta match on layer 4 protocol sets on protocol context to proto_unknown, handle anything coming after it as a raw expression in payload_expr_expand(). Moreover, payload_dependency_kill() skips dependency removal if protocol is unknown, so raw payload expression leaves meta layer 4 protocol remains in place. Closes: https://bugzilla.netfilter.org/show_bug.cgi?id=1641 Signed-off-by: Pablo Neira Ayuso --- tests/py/any/rawpayload.t.json | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'tests/py/any/rawpayload.t.json') diff --git a/tests/py/any/rawpayload.t.json b/tests/py/any/rawpayload.t.json index b5115e0d..4cae4d49 100644 --- a/tests/py/any/rawpayload.t.json +++ b/tests/py/any/rawpayload.t.json @@ -156,6 +156,37 @@ } ] +# meta l4proto 91 @th,400,16 0x0 accept +[ + { + "match": { + "left": { + "meta": { + "key": "l4proto" + } + }, + "op": "==", + "right": 91 + } + }, + { + "match": { + "left": { + "payload": { + "base": "th", + "len": 16, + "offset": 400 + } + }, + "op": "==", + "right": 0 + } + }, + { + "accept": null + } +] + # @ih,32,32 0x14000000 [ { -- cgit v1.2.3