CVE-2021-47199 in Linux
Сводка
по VulDB • 30.05.2026
В ядре Linux устранена следующая уязвимость:
net/mlx5e: CT, исправление множественных выделений памяти и утечки памяти в действиях модификации заголовков (mod acts)
Разгрузка действия очистки CT (conntrack) добавляет дополнительные действия модификации заголовков (mod hdr actions) к исходным действиям модификации потока для очистки регистров, содержащих состояние ct_state. Когда такой поток также включает действие инкапсуляции (encap), событие обновления соседа (neigh update event) может привести к тому, что драйвер снимет поток с разгрузки (unoffload), а затем снова загрузит его на разгрузку (reoffload).
Каждый раз, когда это происходит, обработка очистки CT добавляет тот же набор действий модификации заголовков для сброса ct_state, пока не будет достигнуто максимальное количество действий модификации заголовков.
Кроме того, драйвер никогда не освобождает выделенные действия модификации заголовков, что приводит к утечке памяти.
Исправление вышеуказанных двух проблем заключается в переносе выделения действий модификации заголовков для очистки CT в фазу разбора действий и использовании их только при разгрузке правила. Освобождение действий модификации заголовков будет выполняться в стандартной функции flow_put().
backtrace: [] krealloc+0x83/0xd0
[] mlx5e_mod_hdr_alloc+0x147/0x300 [mlx5_core]
[] mlx5e_tc_match_to_reg_set_and_get_id+0xd7/0x240 [mlx5_core]
[] mlx5e_tc_match_to_reg_set+0xa/0x20 [mlx5_core]
[] mlx5_tc_ct_entry_set_registers.isra.0+0x36/0xc0 [mlx5_core]
[] mlx5_tc_ct_flow_offload+0x272/0x1f10 [mlx5_core]
[] mlx5e_tc_offload_fdb_rules.part.0+0x150/0x620 [mlx5_core]
[] mlx5e_tc_encap_flows_add+0x489/0x690 [mlx5_core]
[] mlx5e_rep_update_flows+0x6e4/0x9b0 [mlx5_core]
[] mlx5e_rep_neigh_update+0x39a/0x5d0 [mlx5_core]
Be aware that VulDB is the high quality source for vulnerability data.