APPLIED: [SRU][F][PATCH 0/1] CVE-2024-26586
Stefan Bader
stefan.bader at canonical.com
Tue Jun 4 13:59:02 UTC 2024
On 31.05.24 21:23, Bethany Jamison wrote:
> [Impact]
>
> mlxsw: spectrum_acl_tcam: Fix stack corruption
>
> When tc filters are first added to a net device, the corresponding local
> port gets bound to an ACL group in the device. The group contains a list
> of ACLs. In turn, each ACL points to a different TCAM region where the
> filters are stored. During forwarding, the ACLs are sequentially
> evaluated until a match is found.
>
> One reason to place filters in different regions is when they are added
> with decreasing priorities and in an alternating order so that two
> consecutive filters can never fit in the same region because of their
> key usage.
>
> In Spectrum-2 and newer ASICs the firmware started to report that the
> maximum number of ACLs in a group is more than 16, but the layout of the
> register that configures ACL groups (PAGT) was not updated to account
> for that. It is therefore possible to hit stack corruption [1] in the
> rare case where more than 16 ACLs in a group are required.
>
> Fix by limiting the maximum ACL group size to the minimum between what
> the firmware reports and the maximum ACLs that fit in the PAGT register.
>
> Add a test case to make sure the machine does not crash when this
> condition is hit.
>
> [1]
> Kernel panic - not syncing: stack-protector: Kernel stack is corrupted in: mlxsw_sp_acl_tcam_group_update+0x116/0x120
> [...]
> dump_stack_lvl+0x36/0x50
> panic+0x305/0x330
> __stack_chk_fail+0x15/0x20
> mlxsw_sp_acl_tcam_group_update+0x116/0x120
> mlxsw_sp_acl_tcam_group_region_attach+0x69/0x110
> mlxsw_sp_acl_tcam_vchunk_get+0x492/0xa20
> mlxsw_sp_acl_tcam_ventry_add+0x25/0xe0
> mlxsw_sp_acl_rule_add+0x47/0x240
> mlxsw_sp_flower_replace+0x1a9/0x1d0
> tc_setup_cb_add+0xdc/0x1c0
> fl_hw_replace_filter+0x146/0x1f0
> fl_change+0xc17/0x1360
> tc_new_tfilter+0x472/0xb90
> rtnetlink_rcv_msg+0x313/0x3b0
> netlink_rcv_skb+0x58/0x100
> netlink_unicast+0x244/0x390
> netlink_sendmsg+0x1e4/0x440
> ____sys_sendmsg+0x164/0x260
> ___sys_sendmsg+0x9a/0xe0
> __sys_sendmsg+0x7a/0xc0
> do_syscall_64+0x40/0xe0
> entry_SYSCALL_64_after_hwframe+0x63/0x6b
>
> [Fix]
>
> Noble: pending
> Mantic: pending
> Jammy: pending
> Focal: backport - function lived in a different spot in the file
> and cherry-pick couldn't find it
> Bionic: not-affected
> Xenial: not-affected
> Trusty: not-affected
>
> [Test Case]
>
> Compile and boot tested
>
> [Where problems could occur]
>
> This fix affects those who use the Mellanox mlxsw driver, an issue with
> this fix would be visible to the user via unexpected behavior or a
> system crash.
>
> Ido Schimmel (1):
> mlxsw: spectrum_acl_tcam: Fix stack corruption
>
> .../mellanox/mlxsw/spectrum_acl_tcam.c | 2 +
> .../drivers/net/mlxsw/spectrum-2/tc_flower.sh | 56 ++++++++++++++++++-
> 2 files changed, 57 insertions(+), 1 deletion(-)
>
Applied to focal:linux/master-next. Thanks.
-Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xE8675DEECBEECEA3.asc
Type: application/pgp-keys
Size: 48643 bytes
Desc: OpenPGP public key
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20240604/e495a027/attachment-0001.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20240604/e495a027/attachment-0001.sig>
More information about the kernel-team
mailing list