Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-11 Thread Salvatore Bonaccorso
Hi,

On Mon, Sep 11, 2023 at 10:52:12PM +0200, Salvatore Bonaccorso wrote:
> Hi Timo,
> 
> On Mon, Sep 11, 2023 at 10:31:56PM +0200, Timo Sigurdsson wrote:
> > Hi Salvatore,
> > 
> > Salvatore Bonaccorso schrieb am 11.09.2023 22:20 (GMT +02:00):
> > 
> > > Bisected the issue:
> > > 
> > > $ git bisect log
> > > git bisect start
> > > # status: waiting for both good and bad commits
> > > # good: [61fd484b2cf6bc8022e8e5ea6f693a9991740ac2] Linux 6.1.38
> > > git bisect good 61fd484b2cf6bc8022e8e5ea6f693a9991740ac2
> > > # status: waiting for bad commit, 1 good commit known
> > > # bad: [1321ab403b38366a4cfb283145bb2c005becb1e5] Linux 6.1.45
> > > git bisect bad 1321ab403b38366a4cfb283145bb2c005becb1e5
> > > # good: [95d49f79e94d4fa8105c880a266789609f3e791a] ext4: only update
> > > i_reserved_data_blocks on successful block allocation
> > > git bisect good 95d49f79e94d4fa8105c880a266789609f3e791a
> > > # good: [f8b61a2c29fc70f64daad698cf09c1f79a0e39f9] drm/amd/display: Set 
> > > minimum
> > > requirement for using PSR-SU on Rembrandt
> > > git bisect good f8b61a2c29fc70f64daad698cf09c1f79a0e39f9
> > > # bad: [bd2decac7345134ea0bd3f4b978478ef53367cd8] mptcp: ensure subflow is
> > > unhashed before cleaning the backlog
> > > git bisect bad bd2decac7345134ea0bd3f4b978478ef53367cd8
> > > # bad: [fe3409cd013cfd10d3e6787b49f33a5dda39cffd] RDMA/irdma: Fix op_type
> > > reporting in CQEs
> > > git bisect bad fe3409cd013cfd10d3e6787b49f33a5dda39cffd
> > > # good: [85c38ac62c1372cc1ab05426315aad61025d33ef] atheros: fix return 
> > > value
> > > check in atl1_tso()
> > > git bisect good 85c38ac62c1372cc1ab05426315aad61025d33ef
> > > # bad: [539cf23cb48835c69cc3d22edff28b92bd82bb18] tipc: stop tipc crypto 
> > > on
> > > failure in tipc_node_create
> > > git bisect bad 539cf23cb48835c69cc3d22edff28b92bd82bb18
> > > # good: [1ecdbf2467ae4bc4df00c5cfab427cb1aaa5e3e1] x86/traps: Fix
> > > load_unaligned_zeropad() handling for shared TDX memory
> > > git bisect good 1ecdbf2467ae4bc4df00c5cfab427cb1aaa5e3e1
> > > # bad: [7218974aba07ff60c646d5a512b02b871402b03e] mm: suppress mm fault 
> > > logging
> > > if fatal signal already pending
> > > git bisect bad 7218974aba07ff60c646d5a512b02b871402b03e
> > > # good: [89a4d1a89751a0fbd520e64091873e19cc0979e8] netfilter: 
> > > nft_set_rbtree:
> > > fix overlap expiration walk
> > > git bisect good 89a4d1a89751a0fbd520e64091873e19cc0979e8
> > > # bad: [268cb07ef3ee17b5454a7c4b23376802c5b00c79] netfilter: nf_tables:
> > > disallow rule addition to bound chain via NFTA_RULE_CHAIN_ID
> > > git bisect bad 268cb07ef3ee17b5454a7c4b23376802c5b00c79
> > > # good: [4237462a073e24f71c700f3e5929f07b6ee1bcaa] netfilter: nf_tables: 
> > > skip
> > > immediate deactivate in _PREPARE_ERROR
> > > git bisect good 4237462a073e24f71c700f3e5929f07b6ee1bcaa
> > > # first bad commit: [268cb07ef3ee17b5454a7c4b23376802c5b00c79] netfilter:
> > > nf_tables: disallow rule addition to bound chain via NFTA_RULE_CHAIN_ID
> > > 
> > > $ git bisect visualize
> > > commit 268cb07ef3ee17b5454a7c4b23376802c5b00c79
> > > Author: Pablo Neira Ayuso 
> > > Date:   Sun Jul 23 16:41:48 2023 +0200
> > > 
> > > netfilter: nf_tables: disallow rule addition to bound chain via
> > > NFTA_RULE_CHAIN_ID
> > > 
> > > [ Upstream commit 0ebc1064e4874d5987722a2ddbc18f94aa53b211 ]
> > > 
> > > Bail out with EOPNOTSUPP when adding rule to bound chain via
> > > NFTA_RULE_CHAIN_ID. The following warning splat is shown when
> > > adding a rule to a deleted bound chain:
> > > 
> > >  WARNING: CPU: 2 PID: 13692 at net/netfilter/nf_tables_api.c:2013
> > >  nf_tables_chain_destroy+0x1f7/0x210 [nf_tables]
> > >  CPU: 2 PID: 13692 Comm: chain-bound-rul Not tainted 6.1.39 #1
> > >  RIP: 0010:nf_tables_chain_destroy+0x1f7/0x210 [nf_tables]
> > > 
> > > Fixes: d0e2c7de92c7 ("netfilter: nf_tables: add NFT_CHAIN_BINDING")
> > > Reported-by: Kevin Rich 
> > > Signed-off-by: Pablo Neira Ayuso 
> > > Signed-off-by: Florian Westphal 
> > > Signed-off-by: Sasha Levin 
> > 
> > Hehe, yes, I was just about to write you the same. My test build
> > with this one reverted lets me load the ruleset again.
> > 
> > Would you like to take this upstream? I was just about to file a
> > report in netfilter's bugzilla, but since you also worked on it as
> > well, I don't mean to interfere...
> > 
> > I'll try to further reduce my test ruleset to see what actually
> > triggers this.
> 
> I'm fine if you report it upstream, as you have the best position for
> making further tests further stripped down rulesets. But instread of
> bugzilla I think it's best to directly mail Pablo Neira Ayuso
> , the people in the Signed-off-by, additionally
> the stable list (sta...@vger.kernel.org) and the regressions
> mailinglist (regressi...@lists.linux.dev, cf.
> https://www.kernel.org/doc/html/latest/process/handling-regressions.html).

get_maintainers.pl additionally gives:

$ ./scripts/get_maintainer.pl 

Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-11 Thread Salvatore Bonaccorso
Hi Timo,

On Mon, Sep 11, 2023 at 10:31:56PM +0200, Timo Sigurdsson wrote:
> Hi Salvatore,
> 
> Salvatore Bonaccorso schrieb am 11.09.2023 22:20 (GMT +02:00):
> 
> > Bisected the issue:
> > 
> > $ git bisect log
> > git bisect start
> > # status: waiting for both good and bad commits
> > # good: [61fd484b2cf6bc8022e8e5ea6f693a9991740ac2] Linux 6.1.38
> > git bisect good 61fd484b2cf6bc8022e8e5ea6f693a9991740ac2
> > # status: waiting for bad commit, 1 good commit known
> > # bad: [1321ab403b38366a4cfb283145bb2c005becb1e5] Linux 6.1.45
> > git bisect bad 1321ab403b38366a4cfb283145bb2c005becb1e5
> > # good: [95d49f79e94d4fa8105c880a266789609f3e791a] ext4: only update
> > i_reserved_data_blocks on successful block allocation
> > git bisect good 95d49f79e94d4fa8105c880a266789609f3e791a
> > # good: [f8b61a2c29fc70f64daad698cf09c1f79a0e39f9] drm/amd/display: Set 
> > minimum
> > requirement for using PSR-SU on Rembrandt
> > git bisect good f8b61a2c29fc70f64daad698cf09c1f79a0e39f9
> > # bad: [bd2decac7345134ea0bd3f4b978478ef53367cd8] mptcp: ensure subflow is
> > unhashed before cleaning the backlog
> > git bisect bad bd2decac7345134ea0bd3f4b978478ef53367cd8
> > # bad: [fe3409cd013cfd10d3e6787b49f33a5dda39cffd] RDMA/irdma: Fix op_type
> > reporting in CQEs
> > git bisect bad fe3409cd013cfd10d3e6787b49f33a5dda39cffd
> > # good: [85c38ac62c1372cc1ab05426315aad61025d33ef] atheros: fix return value
> > check in atl1_tso()
> > git bisect good 85c38ac62c1372cc1ab05426315aad61025d33ef
> > # bad: [539cf23cb48835c69cc3d22edff28b92bd82bb18] tipc: stop tipc crypto on
> > failure in tipc_node_create
> > git bisect bad 539cf23cb48835c69cc3d22edff28b92bd82bb18
> > # good: [1ecdbf2467ae4bc4df00c5cfab427cb1aaa5e3e1] x86/traps: Fix
> > load_unaligned_zeropad() handling for shared TDX memory
> > git bisect good 1ecdbf2467ae4bc4df00c5cfab427cb1aaa5e3e1
> > # bad: [7218974aba07ff60c646d5a512b02b871402b03e] mm: suppress mm fault 
> > logging
> > if fatal signal already pending
> > git bisect bad 7218974aba07ff60c646d5a512b02b871402b03e
> > # good: [89a4d1a89751a0fbd520e64091873e19cc0979e8] netfilter: 
> > nft_set_rbtree:
> > fix overlap expiration walk
> > git bisect good 89a4d1a89751a0fbd520e64091873e19cc0979e8
> > # bad: [268cb07ef3ee17b5454a7c4b23376802c5b00c79] netfilter: nf_tables:
> > disallow rule addition to bound chain via NFTA_RULE_CHAIN_ID
> > git bisect bad 268cb07ef3ee17b5454a7c4b23376802c5b00c79
> > # good: [4237462a073e24f71c700f3e5929f07b6ee1bcaa] netfilter: nf_tables: 
> > skip
> > immediate deactivate in _PREPARE_ERROR
> > git bisect good 4237462a073e24f71c700f3e5929f07b6ee1bcaa
> > # first bad commit: [268cb07ef3ee17b5454a7c4b23376802c5b00c79] netfilter:
> > nf_tables: disallow rule addition to bound chain via NFTA_RULE_CHAIN_ID
> > 
> > $ git bisect visualize
> > commit 268cb07ef3ee17b5454a7c4b23376802c5b00c79
> > Author: Pablo Neira Ayuso 
> > Date:   Sun Jul 23 16:41:48 2023 +0200
> > 
> > netfilter: nf_tables: disallow rule addition to bound chain via
> > NFTA_RULE_CHAIN_ID
> > 
> > [ Upstream commit 0ebc1064e4874d5987722a2ddbc18f94aa53b211 ]
> > 
> > Bail out with EOPNOTSUPP when adding rule to bound chain via
> > NFTA_RULE_CHAIN_ID. The following warning splat is shown when
> > adding a rule to a deleted bound chain:
> > 
> >  WARNING: CPU: 2 PID: 13692 at net/netfilter/nf_tables_api.c:2013
> >  nf_tables_chain_destroy+0x1f7/0x210 [nf_tables]
> >  CPU: 2 PID: 13692 Comm: chain-bound-rul Not tainted 6.1.39 #1
> >  RIP: 0010:nf_tables_chain_destroy+0x1f7/0x210 [nf_tables]
> > 
> > Fixes: d0e2c7de92c7 ("netfilter: nf_tables: add NFT_CHAIN_BINDING")
> > Reported-by: Kevin Rich 
> > Signed-off-by: Pablo Neira Ayuso 
> > Signed-off-by: Florian Westphal 
> > Signed-off-by: Sasha Levin 
> 
> Hehe, yes, I was just about to write you the same. My test build
> with this one reverted lets me load the ruleset again.
> 
> Would you like to take this upstream? I was just about to file a
> report in netfilter's bugzilla, but since you also worked on it as
> well, I don't mean to interfere...
> 
> I'll try to further reduce my test ruleset to see what actually
> triggers this.

I'm fine if you report it upstream, as you have the best position for
making further tests further stripped down rulesets. But instread of
bugzilla I think it's best to directly mail Pablo Neira Ayuso
, the people in the Signed-off-by, additionally
the stable list (sta...@vger.kernel.org) and the regressions
mailinglist (regressi...@lists.linux.dev, cf.
https://www.kernel.org/doc/html/latest/process/handling-regressions.html).

It should be noted:

0ebc1064e487 ("netfilter: nf_tables: disallow rule addition to bound
chain via NFTA_RULE_CHAIN_ID") in 6.5-rc4 was backported to several
stable series, namely in 5.10.190, 5.15.124, 6.1.43, 6.4.8.

While I can reproduce the issue in 5.10.191-1 and 6.1.52-1, I cannot
in 6.4.13-1 or 6.5.2-1 (not yet released in Debian).

Possibly for the 

Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-11 Thread Timo Sigurdsson
Hi Salvatore,

Salvatore Bonaccorso schrieb am 11.09.2023 22:20 (GMT +02:00):

> Bisected the issue:
> 
> $ git bisect log
> git bisect start
> # status: waiting for both good and bad commits
> # good: [61fd484b2cf6bc8022e8e5ea6f693a9991740ac2] Linux 6.1.38
> git bisect good 61fd484b2cf6bc8022e8e5ea6f693a9991740ac2
> # status: waiting for bad commit, 1 good commit known
> # bad: [1321ab403b38366a4cfb283145bb2c005becb1e5] Linux 6.1.45
> git bisect bad 1321ab403b38366a4cfb283145bb2c005becb1e5
> # good: [95d49f79e94d4fa8105c880a266789609f3e791a] ext4: only update
> i_reserved_data_blocks on successful block allocation
> git bisect good 95d49f79e94d4fa8105c880a266789609f3e791a
> # good: [f8b61a2c29fc70f64daad698cf09c1f79a0e39f9] drm/amd/display: Set 
> minimum
> requirement for using PSR-SU on Rembrandt
> git bisect good f8b61a2c29fc70f64daad698cf09c1f79a0e39f9
> # bad: [bd2decac7345134ea0bd3f4b978478ef53367cd8] mptcp: ensure subflow is
> unhashed before cleaning the backlog
> git bisect bad bd2decac7345134ea0bd3f4b978478ef53367cd8
> # bad: [fe3409cd013cfd10d3e6787b49f33a5dda39cffd] RDMA/irdma: Fix op_type
> reporting in CQEs
> git bisect bad fe3409cd013cfd10d3e6787b49f33a5dda39cffd
> # good: [85c38ac62c1372cc1ab05426315aad61025d33ef] atheros: fix return value
> check in atl1_tso()
> git bisect good 85c38ac62c1372cc1ab05426315aad61025d33ef
> # bad: [539cf23cb48835c69cc3d22edff28b92bd82bb18] tipc: stop tipc crypto on
> failure in tipc_node_create
> git bisect bad 539cf23cb48835c69cc3d22edff28b92bd82bb18
> # good: [1ecdbf2467ae4bc4df00c5cfab427cb1aaa5e3e1] x86/traps: Fix
> load_unaligned_zeropad() handling for shared TDX memory
> git bisect good 1ecdbf2467ae4bc4df00c5cfab427cb1aaa5e3e1
> # bad: [7218974aba07ff60c646d5a512b02b871402b03e] mm: suppress mm fault 
> logging
> if fatal signal already pending
> git bisect bad 7218974aba07ff60c646d5a512b02b871402b03e
> # good: [89a4d1a89751a0fbd520e64091873e19cc0979e8] netfilter: nft_set_rbtree:
> fix overlap expiration walk
> git bisect good 89a4d1a89751a0fbd520e64091873e19cc0979e8
> # bad: [268cb07ef3ee17b5454a7c4b23376802c5b00c79] netfilter: nf_tables:
> disallow rule addition to bound chain via NFTA_RULE_CHAIN_ID
> git bisect bad 268cb07ef3ee17b5454a7c4b23376802c5b00c79
> # good: [4237462a073e24f71c700f3e5929f07b6ee1bcaa] netfilter: nf_tables: skip
> immediate deactivate in _PREPARE_ERROR
> git bisect good 4237462a073e24f71c700f3e5929f07b6ee1bcaa
> # first bad commit: [268cb07ef3ee17b5454a7c4b23376802c5b00c79] netfilter:
> nf_tables: disallow rule addition to bound chain via NFTA_RULE_CHAIN_ID
> 
> $ git bisect visualize
> commit 268cb07ef3ee17b5454a7c4b23376802c5b00c79
> Author: Pablo Neira Ayuso 
> Date:   Sun Jul 23 16:41:48 2023 +0200
> 
> netfilter: nf_tables: disallow rule addition to bound chain via
> NFTA_RULE_CHAIN_ID
> 
> [ Upstream commit 0ebc1064e4874d5987722a2ddbc18f94aa53b211 ]
> 
> Bail out with EOPNOTSUPP when adding rule to bound chain via
> NFTA_RULE_CHAIN_ID. The following warning splat is shown when
> adding a rule to a deleted bound chain:
> 
>  WARNING: CPU: 2 PID: 13692 at net/netfilter/nf_tables_api.c:2013
>  nf_tables_chain_destroy+0x1f7/0x210 [nf_tables]
>  CPU: 2 PID: 13692 Comm: chain-bound-rul Not tainted 6.1.39 #1
>  RIP: 0010:nf_tables_chain_destroy+0x1f7/0x210 [nf_tables]
> 
> Fixes: d0e2c7de92c7 ("netfilter: nf_tables: add NFT_CHAIN_BINDING")
> Reported-by: Kevin Rich 
> Signed-off-by: Pablo Neira Ayuso 
> Signed-off-by: Florian Westphal 
> Signed-off-by: Sasha Levin 

Hehe, yes, I was just about to write you the same. My test build with this one 
reverted lets me load the ruleset again.

Would you like to take this upstream? I was just about to file a report in 
netfilter's bugzilla, but since you also worked on it as well, I don't mean to 
interfere...

I'll try to further reduce my test ruleset to see what actually triggers this.

Thanks and regards,

Timo



Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-11 Thread Salvatore Bonaccorso
Hi,

On Mon, Sep 11, 2023 at 04:28:34PM +0200, Salvatore Bonaccorso wrote:
> Control: found -1 5.10.191-1
> 
> On Mon, Sep 11, 2023 at 04:17:46PM +0200, Salvatore Bonaccorso wrote:
> > Control: tags -1 + confirmed upstream
> > 
> > Hi,
> > 
> > On Mon, Sep 11, 2023 at 04:08:07PM +0200, Salvatore Bonaccorso wrote:
> > > Control: tags -1 - moreinfo unreproducible
> > > 
> > > Hi Timo,
> > > 
> > > On Mon, Sep 11, 2023 at 03:15:18AM +0200, Timo Sigurdsson wrote:
> > > > Hi,
> > > > 
> > > > Salvatore Bonaccorso schrieb am 10.09.2023 12:21 (GMT +02:00):
> > > > 
> > > > > Would it be possible to provide a minimal set of rules triggering the
> > > > > issue? Can you reproduce the issue with the official build?
> > > > 
> > > > So, I did some more testing on a different machine running the official 
> > > > build. My findings so far are:
> > > > 1) Yes, I can reproduce the issue with the official build.
> > > > 2) The issue depends on the ruleset. The minimal ruleset I have on that 
> > > > machine, doesn't trigger the issue, but when I copy over the ruleset 
> > > > from the machine I first observed this on, then I can reproduce it.
> > > > 
> > > > I'm attaching a somewhat stripped down version of my original, rather 
> > > > complex ruleset. It's by no means a "minimal" reproducer, cause I 
> > > > haven't had the time yet to further reduce it in order to see what 
> > > > actually triggers it. But you should be able to observe that this 
> > > > ruleset loads just fine on linux 6.1.38-4, but doesn't anymore on 
> > > > 6.1.52-1.
> > > 
> > > Thanks for providing it, this helps debugging the issue.
> > > 
> > > > I also started looking into what commit could have introduced this. My 
> > > > first guess "netfilter: nft_dynset: disallow object maps" 
> > > > (23185c6aed1f) is wrong. Even with this one reverted, the issue occurs. 
> > > > I'll try another build with "netfilter: nf_tables: disallow rule 
> > > > addition to bound chain via NFTA_RULE_CHAIN_ID" (0ebc1064e487) reverted 
> > > > tomorrow evening...
> > > 
> > > Thanks, as soon we have the introducing commit we can go to the next
> > > step and check upstream. I cannot trigger the problem with 6.4.13-1 or
> > > 6.5.2.
> > 
> > The issue seems to be present already in 6.1.49-rc1, which I had still
> > from local pareparations for the rebases. So the bisection needs to go
> > to the upstream versions between 6.1.38 and 6.1.49 at least.
> 
> Additionally the behaviour change is as well in 5.10.191-1 (and
> 5.10.193 upstream), whereeas not triggering in 5.10.179.
> 
> So to be on the safe side making the following statement: either this
> is a real regression affecting several stable series or there is an
> intentional upstream change uncovering an issue in ruleset. As the
> behaviour is not in 6.5.2 for now considering it the first case.

Bisected the issue:

$ git bisect log
git bisect start
# status: waiting for both good and bad commits
# good: [61fd484b2cf6bc8022e8e5ea6f693a9991740ac2] Linux 6.1.38
git bisect good 61fd484b2cf6bc8022e8e5ea6f693a9991740ac2
# status: waiting for bad commit, 1 good commit known
# bad: [1321ab403b38366a4cfb283145bb2c005becb1e5] Linux 6.1.45
git bisect bad 1321ab403b38366a4cfb283145bb2c005becb1e5
# good: [95d49f79e94d4fa8105c880a266789609f3e791a] ext4: only update 
i_reserved_data_blocks on successful block allocation
git bisect good 95d49f79e94d4fa8105c880a266789609f3e791a
# good: [f8b61a2c29fc70f64daad698cf09c1f79a0e39f9] drm/amd/display: Set minimum 
requirement for using PSR-SU on Rembrandt
git bisect good f8b61a2c29fc70f64daad698cf09c1f79a0e39f9
# bad: [bd2decac7345134ea0bd3f4b978478ef53367cd8] mptcp: ensure subflow is 
unhashed before cleaning the backlog
git bisect bad bd2decac7345134ea0bd3f4b978478ef53367cd8
# bad: [fe3409cd013cfd10d3e6787b49f33a5dda39cffd] RDMA/irdma: Fix op_type 
reporting in CQEs
git bisect bad fe3409cd013cfd10d3e6787b49f33a5dda39cffd
# good: [85c38ac62c1372cc1ab05426315aad61025d33ef] atheros: fix return value 
check in atl1_tso()
git bisect good 85c38ac62c1372cc1ab05426315aad61025d33ef
# bad: [539cf23cb48835c69cc3d22edff28b92bd82bb18] tipc: stop tipc crypto on 
failure in tipc_node_create
git bisect bad 539cf23cb48835c69cc3d22edff28b92bd82bb18
# good: [1ecdbf2467ae4bc4df00c5cfab427cb1aaa5e3e1] x86/traps: Fix 
load_unaligned_zeropad() handling for shared TDX memory
git bisect good 1ecdbf2467ae4bc4df00c5cfab427cb1aaa5e3e1
# bad: [7218974aba07ff60c646d5a512b02b871402b03e] mm: suppress mm fault logging 
if fatal signal already pending
git bisect bad 7218974aba07ff60c646d5a512b02b871402b03e
# good: [89a4d1a89751a0fbd520e64091873e19cc0979e8] netfilter: nft_set_rbtree: 
fix overlap expiration walk
git bisect good 89a4d1a89751a0fbd520e64091873e19cc0979e8
# bad: [268cb07ef3ee17b5454a7c4b23376802c5b00c79] netfilter: nf_tables: 
disallow rule addition to bound chain via NFTA_RULE_CHAIN_ID
git bisect bad 268cb07ef3ee17b5454a7c4b23376802c5b00c79
# good: [4237462a073e24f71c700f3e5929f07b6ee1bcaa] 

Processed: Re: Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-11 Thread Debian Bug Tracking System
Processing control commands:

> found -1 5.10.191-1
Bug #1051592 [linux] linux: Regression - upgrade to 6.1.52-1 breaks nftables
There is no source info for the package 'linux' at version '5.10.191-1' with 
architecture ''
Unable to make a source version for version '5.10.191-1'
Marked as found in versions 5.10.191-1.

-- 
1051592: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1051592
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-11 Thread Salvatore Bonaccorso
Control: found -1 5.10.191-1

On Mon, Sep 11, 2023 at 04:17:46PM +0200, Salvatore Bonaccorso wrote:
> Control: tags -1 + confirmed upstream
> 
> Hi,
> 
> On Mon, Sep 11, 2023 at 04:08:07PM +0200, Salvatore Bonaccorso wrote:
> > Control: tags -1 - moreinfo unreproducible
> > 
> > Hi Timo,
> > 
> > On Mon, Sep 11, 2023 at 03:15:18AM +0200, Timo Sigurdsson wrote:
> > > Hi,
> > > 
> > > Salvatore Bonaccorso schrieb am 10.09.2023 12:21 (GMT +02:00):
> > > 
> > > > Would it be possible to provide a minimal set of rules triggering the
> > > > issue? Can you reproduce the issue with the official build?
> > > 
> > > So, I did some more testing on a different machine running the official 
> > > build. My findings so far are:
> > > 1) Yes, I can reproduce the issue with the official build.
> > > 2) The issue depends on the ruleset. The minimal ruleset I have on that 
> > > machine, doesn't trigger the issue, but when I copy over the ruleset from 
> > > the machine I first observed this on, then I can reproduce it.
> > > 
> > > I'm attaching a somewhat stripped down version of my original, rather 
> > > complex ruleset. It's by no means a "minimal" reproducer, cause I haven't 
> > > had the time yet to further reduce it in order to see what actually 
> > > triggers it. But you should be able to observe that this ruleset loads 
> > > just fine on linux 6.1.38-4, but doesn't anymore on 6.1.52-1.
> > 
> > Thanks for providing it, this helps debugging the issue.
> > 
> > > I also started looking into what commit could have introduced this. My 
> > > first guess "netfilter: nft_dynset: disallow object maps" (23185c6aed1f) 
> > > is wrong. Even with this one reverted, the issue occurs. I'll try another 
> > > build with "netfilter: nf_tables: disallow rule addition to bound chain 
> > > via NFTA_RULE_CHAIN_ID" (0ebc1064e487) reverted tomorrow evening...
> > 
> > Thanks, as soon we have the introducing commit we can go to the next
> > step and check upstream. I cannot trigger the problem with 6.4.13-1 or
> > 6.5.2.
> 
> The issue seems to be present already in 6.1.49-rc1, which I had still
> from local pareparations for the rebases. So the bisection needs to go
> to the upstream versions between 6.1.38 and 6.1.49 at least.

Additionally the behaviour change is as well in 5.10.191-1 (and
5.10.193 upstream), whereeas not triggering in 5.10.179.

So to be on the safe side making the following statement: either this
is a real regression affecting several stable series or there is an
intentional upstream change uncovering an issue in ruleset. As the
behaviour is not in 6.5.2 for now considering it the first case.

Regards,
Salvatore



Processed: Re: Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-11 Thread Debian Bug Tracking System
Processing control commands:

> tags -1 + confirmed upstream
Bug #1051592 [linux] linux: Regression - upgrade to 6.1.52-1 breaks nftables
Added tag(s) upstream and confirmed.

-- 
1051592: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1051592
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-11 Thread Salvatore Bonaccorso
Control: tags -1 + confirmed upstream

Hi,

On Mon, Sep 11, 2023 at 04:08:07PM +0200, Salvatore Bonaccorso wrote:
> Control: tags -1 - moreinfo unreproducible
> 
> Hi Timo,
> 
> On Mon, Sep 11, 2023 at 03:15:18AM +0200, Timo Sigurdsson wrote:
> > Hi,
> > 
> > Salvatore Bonaccorso schrieb am 10.09.2023 12:21 (GMT +02:00):
> > 
> > > Would it be possible to provide a minimal set of rules triggering the
> > > issue? Can you reproduce the issue with the official build?
> > 
> > So, I did some more testing on a different machine running the official 
> > build. My findings so far are:
> > 1) Yes, I can reproduce the issue with the official build.
> > 2) The issue depends on the ruleset. The minimal ruleset I have on that 
> > machine, doesn't trigger the issue, but when I copy over the ruleset from 
> > the machine I first observed this on, then I can reproduce it.
> > 
> > I'm attaching a somewhat stripped down version of my original, rather 
> > complex ruleset. It's by no means a "minimal" reproducer, cause I haven't 
> > had the time yet to further reduce it in order to see what actually 
> > triggers it. But you should be able to observe that this ruleset loads just 
> > fine on linux 6.1.38-4, but doesn't anymore on 6.1.52-1.
> 
> Thanks for providing it, this helps debugging the issue.
> 
> > I also started looking into what commit could have introduced this. My 
> > first guess "netfilter: nft_dynset: disallow object maps" (23185c6aed1f) is 
> > wrong. Even with this one reverted, the issue occurs. I'll try another 
> > build with "netfilter: nf_tables: disallow rule addition to bound chain via 
> > NFTA_RULE_CHAIN_ID" (0ebc1064e487) reverted tomorrow evening...
> 
> Thanks, as soon we have the introducing commit we can go to the next
> step and check upstream. I cannot trigger the problem with 6.4.13-1 or
> 6.5.2.

The issue seems to be present already in 6.1.49-rc1, which I had still
from local pareparations for the rebases. So the bisection needs to go
to the upstream versions between 6.1.38 and 6.1.49 at least.

Regards,
Salvatore



Processed: Re: Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-11 Thread Debian Bug Tracking System
Processing control commands:

> tags -1 - moreinfo unreproducible
Bug #1051592 [linux] linux: Regression - upgrade to 6.1.52-1 breaks nftables
Removed tag(s) moreinfo and unreproducible.

-- 
1051592: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1051592
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-11 Thread Salvatore Bonaccorso
Control: tags -1 - moreinfo unreproducible

Hi Timo,

On Mon, Sep 11, 2023 at 03:15:18AM +0200, Timo Sigurdsson wrote:
> Hi,
> 
> Salvatore Bonaccorso schrieb am 10.09.2023 12:21 (GMT +02:00):
> 
> > Would it be possible to provide a minimal set of rules triggering the
> > issue? Can you reproduce the issue with the official build?
> 
> So, I did some more testing on a different machine running the official 
> build. My findings so far are:
> 1) Yes, I can reproduce the issue with the official build.
> 2) The issue depends on the ruleset. The minimal ruleset I have on that 
> machine, doesn't trigger the issue, but when I copy over the ruleset from the 
> machine I first observed this on, then I can reproduce it.
> 
> I'm attaching a somewhat stripped down version of my original, rather complex 
> ruleset. It's by no means a "minimal" reproducer, cause I haven't had the 
> time yet to further reduce it in order to see what actually triggers it. But 
> you should be able to observe that this ruleset loads just fine on linux 
> 6.1.38-4, but doesn't anymore on 6.1.52-1.

Thanks for providing it, this helps debugging the issue.

> I also started looking into what commit could have introduced this. My first 
> guess "netfilter: nft_dynset: disallow object maps" (23185c6aed1f) is wrong. 
> Even with this one reverted, the issue occurs. I'll try another build with 
> "netfilter: nf_tables: disallow rule addition to bound chain via 
> NFTA_RULE_CHAIN_ID" (0ebc1064e487) reverted tomorrow evening...

Thanks, as soon we have the introducing commit we can go to the next
step and check upstream. I cannot trigger the problem with 6.4.13-1 or
6.5.2.

Regards,
Salvatore



Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-10 Thread Timo Sigurdsson
Hi,

Salvatore Bonaccorso schrieb am 10.09.2023 12:21 (GMT +02:00):

> Would it be possible to provide a minimal set of rules triggering the
> issue? Can you reproduce the issue with the official build?

So, I did some more testing on a different machine running the official build. 
My findings so far are:
1) Yes, I can reproduce the issue with the official build.
2) The issue depends on the ruleset. The minimal ruleset I have on that 
machine, doesn't trigger the issue, but when I copy over the ruleset from the 
machine I first observed this on, then I can reproduce it.

I'm attaching a somewhat stripped down version of my original, rather complex 
ruleset. It's by no means a "minimal" reproducer, cause I haven't had the time 
yet to further reduce it in order to see what actually triggers it. But you 
should be able to observe that this ruleset loads just fine on linux 6.1.38-4, 
but doesn't anymore on 6.1.52-1.

I also started looking into what commit could have introduced this. My first 
guess "netfilter: nft_dynset: disallow object maps" (23185c6aed1f) is wrong. 
Even with this one reverted, the issue occurs. I'll try another build with 
"netfilter: nf_tables: disallow rule addition to bound chain via 
NFTA_RULE_CHAIN_ID" (0ebc1064e487) reverted tomorrow evening...

Kind regards,

Timo


P.S.: Regarding the severity: Treat it with whatever severity you see fit. I 
was a bit in a hurry and didn't actually look at the definitions for the 
different severity options this morning. 

#!/usr/sbin/nft -f

flush ruleset

define public_if = eth0
define trusted_if = eth1
define voip_if = eth2.10
define guest_if = eth2.20
define home_if = { $trusted_if, $voip_if, $guest_if }
define home_ipv6_if = { $trusted_if, $voip_if, $guest_if }

define masq_ip = { 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24, 
192.168.4.0/24 }
define masq_if = $public_if

define host1_ip = 192.168.1.10
define host2_ip = 192.168.2.20
define host3_ip = 192.168.3.30
define host4_ip = 192.168.4.40

define proxy_port = 8443

define private_ip = { 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }
define private_ip6 = { fe80::/64, fd00::/8 }
define bogons_ip = { 0.0.0.0/8, 10.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 
169.254.0.0/16, 172.16.0.0/12, 192.0.0.0/24, 192.0.2.0/24, 192.168.0.0/16, 
198.18.0.0/15, 198.51.100.0/24, 203.0.113.0/24, 224.0.0.0/3 }
define bogons_ip6 = { ::/3, 2001:0002::/48, 2001:0003::/32, 2001:10::/28, 
2001:20::/28, 2001::/32, 2001:db8::/32, 2002::/16, 3000::/4, 4000::/2, 8000::/1 
}

define sip_whitelist_ip6 = { 2001:db8::1/128, 2001:db8::2/128 }
define smtps_whitelist_ip = 10.0.0.1
define protocol_whitelist = { tcp, udp, icmp, ipv6-icmp }

table inet filter {
map if_input {
type ifname : verdict;
elements = { $public_if : jump public_input, $trusted_if : jump 
home_input, $voip_if : jump home_input, $guest_if : jump home_input }
}
map if_forward {
type ifname : verdict;
elements = { $public_if : jump public_forward, $trusted_if : 
jump trusted_forward, $voip_if : jump voip_forward, $guest_if : jump 
guest_forward }
}
map if_output {
type ifname : verdict;
elements = { $public_if : jump public_output, $trusted_if : 
jump home_output, $voip_if : jump home_output, $guest_if : jump home_output }
}

set ipv4_blacklist { type ipv4_addr; flags interval; auto-merge; }
set ipv6_blacklist { type ipv6_addr; flags interval; auto-merge; }
set limit_src_ip { type ipv4_addr; flags dynamic, timeout; size 1024; }
set limit_src_ip6 { type ipv6_addr; flags dynamic, timeout; size 1024; }

chain PREROUTING_RAW {
type filter hook prerouting priority raw;

meta l4proto != $protocol_whitelist counter drop
tcp flags syn jump {
tcp option maxseg size 1-500 counter drop
tcp sport 0 counter drop
}
rt type 0 counter drop
}

chain PREROUTING_MANGLE {
type filter hook prerouting priority mangle;

ct state vmap { invalid : jump ct_invalid_pre, untracked : jump 
ct_untracked_pre, new : jump ct_new_pre, related : jump rpfilter }
}
chain ct_invalid_pre {
counter drop
}
chain ct_untracked_pre {
icmpv6 type { nd-router-solicit, nd-router-advert, 
nd-neighbor-solicit, nd-neighbor-advert, mld-listener-query, 
mld2-listener-report } return
counter drop
}
chain ct_new_pre {
jump rpfilter

tcp flags & (fin|syn|rst|ack) != syn counter drop

iifname $public_if meta nfproto vmap { ipv4 : jump 
blacklist_input_ipv4, ipv6 : jump blacklist_input_ipv6 }
}
chain rpfilter {
ip saddr 0.0.0.0 ip daddr 255.255.255.255 udp sport bootpc udp 
dport bootps 

Processed: Re: Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-10 Thread Debian Bug Tracking System
Processing control commands:

> tags -1 + moreinfo
Bug #1051592 [linux] linux: Regression - upgrade to 6.1.52-1 breaks nftables
Added tag(s) moreinfo.

-- 
1051592: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1051592
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-10 Thread Salvatore Bonaccorso
Control: tags -1 + moreinfo

Hi

On Sun, Sep 10, 2023 at 10:38:45AM +0200, Timo Sigurdsson wrote:
> Package: linux
> Version: 6.1.52-1
> Severity: grave
> 
> Dear Maintainers,
> 
> linux-image-6.1.0-12-amd64 causes a serious regression in nftables.
> After upgrading one of my machines, nftables fails to start -
> leaving the system without an active firewall.
> 
> Doing
> `nft -cf /etc/nftables.conf'
> throws many "Operation not supported" errors on rulesets that have been in 
> place for months wihtout issues.
> 
> Just to give two simple examples from the log when nftables fails to start:
> /etc/nftables.conf:99:4-44: Error: Could not process rule: Operation not 
> supported
> tcp option maxseg size 1-500 counter drop
> ^
> /etc/nftables.conf:308:4-27: Error: Could not process rule: Operation not 
> supported
> tcp dport sip-tls accept
> 
> 
> Downgrading to linux-image-6.1.0-11-amd64 resolves the issue.
> 
> Notes: I'm running a local rebuild of linux-image-amd64 with a few
> additional symbols enabled. But since these symbols are totally
> unrelated to the netfilter subsystem and there are no changes to the
> source itself, I'm certain, this affects the original Debian build
> as well. Whether it only affects certain architectures or rulesets,
> I can't say, though.
> 
> I'm cc'ing debian-secur...@debian.org because the update came via
> the stable-security channel.

This is defintively not 'grave' but I keep it for the time beeing at
RC level and might be adjusted later.

Would it be possible to provide a minimal set of rules triggering the
issue? Can you reproduce the issue with the official build?

Regards,
Salvatore



Bug#1051592: linux: Regression - upgrade to 6.1.52-1 breaks nftables

2023-09-10 Thread Timo Sigurdsson
Package: linux
Version: 6.1.52-1
Severity: grave

Dear Maintainers,

linux-image-6.1.0-12-amd64 causes a serious regression in nftables. After 
upgrading one of my machines, nftables fails to start - leaving the system 
without an active firewall.

Doing
`nft -cf /etc/nftables.conf'
throws many "Operation not supported" errors on rulesets that have been in 
place for months wihtout issues.

Just to give two simple examples from the log when nftables fails to start:
/etc/nftables.conf:99:4-44: Error: Could not process rule: Operation not 
supported
tcp option maxseg size 1-500 counter drop
^
/etc/nftables.conf:308:4-27: Error: Could not process rule: Operation not 
supported
tcp dport sip-tls accept


Downgrading to linux-image-6.1.0-11-amd64 resolves the issue.

Notes: I'm running a local rebuild of linux-image-amd64 with a few additional 
symbols enabled. But since these symbols are totally unrelated to the netfilter 
subsystem and there are no changes to the source itself, I'm certain, this 
affects the original Debian build as well. Whether it only affects certain 
architectures or rulesets, I can't say, though.

I'm cc'ing debian-secur...@debian.org because the update came via the 
stable-security channel.


Thanks and regards,

Timo