CVE-2021-47199

net/mlx5e: CT, Fix multiple allocations and memleak of mod acts

published April 10, 2024

CVSS
—
EPSS
0%
Percentile
8.8
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

net/mlx5e: CT, Fix multiple allocations and memleak of mod acts

CT clear action offload adds additional mod hdr actions to the

flow's original mod actions in order to clear the registers which

hold ct_state.

When such flow also includes encap action, a neigh update event

can cause the driver to unoffload the flow and then reoffload it.

Each time this happens, the ct clear handling adds that same set

of mod hdr actions to reset ct_state until the max of mod hdr

actions is reached.

Also the driver never releases the allocated mod hdr actions and

causing a memleak.

Fix above two issues by moving CT clear mod acts allocation

into the parsing actions phase and only use it when offloading the rule.

The release of mod acts will be done in the normal flow_put().

backtrace:

[<000000007316e2f3>] krealloc+0x83/0xd0

[<00000000ef157de1>] mlx5e_mod_hdr_alloc+0x147/0x300 [mlx5_core]

[<00000000970ce4ae>] mlx5e_tc_match_to_reg_set_and_get_id+0xd7/0x240 [mlx5_core]

[<0000000067c5fa17>] mlx5e_tc_match_to_reg_set+0xa/0x20 [mlx5_core]

[<00000000d032eb98>] mlx5_tc_ct_entry_set_registers.isra.0+0x36/0xc0 [mlx5_core]

[<00000000fd23b869>] mlx5_tc_ct_flow_offload+0x272/0x1f10 [mlx5_core]

[<000000004fc24acc>] mlx5e_tc_offload_fdb_rules.part.0+0x150/0x620 [mlx5_core]

[<00000000dc741c17>] mlx5e_tc_encap_flows_add+0x489/0x690 [mlx5_core]

[<00000000e92e49d7>] mlx5e_rep_update_flows+0x6e4/0x9b0 [mlx5_core]

[<00000000f60f5602>] mlx5e_rep_neigh_update+0x39a/0x5d0 [mlx5_core]

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00196 · 8.8th percentile
Published
2024-04-10T18:56Z
EPSS history
Timeline
  • 10 APR 18:56Z
    net/mlx5e: CT, Fix multiple allocations and memleak of mod acts
    cvelistv5