CVE-2026-43464 in LinuxИнформация

Сводка

по VulDB • 22.05.2026

В ядре Linux устранена следующая уязвимость:

net/mlx5e: RX, исправление подсчета фрагментов для XDP с несколькими буферами (multi-buf) для устаревшего RQ (Receive Queue)

Программы XDP с несколькими буферами могут изменять структуру буфера XDP при вызове функций bpf_xdp_pull_data() или bpf_xdp_adjust_tail(). Зафиксированный коммит в теге fixes исправил предположение в драйвере mlx5 о том, что структура буфера XDP не изменяется во время выполнения программы. Однако это исправление привело к другой проблеме: отброшенные фрагменты по-прежнему должны подсчитываться на стороне драйвера, чтобы избежать проблем со счетчиком ссылок на фрагменты страниц.

Подобная проблема может быть воспроизведена с помощью самодиагностического теста test_xdp_native_adjst_tail_shrnk_data при использовании полезной нагрузки (payload) размером 3600 байт и уменьшении на 256 байт (предстоящий патч для самодиагностического теста): последний фрагмент освобождается кодом XDP, но не отслеживается драйвером. Это приводит к отрицательному значению pp_ref_count при освобождении страницы и последующему сбою (splat):

WARNING: include/net/page_pool/helpers.h:297 at mlx5e_page_release_fragmented.isra.0+0x4a/0x50 [mlx5_core], CPU#12: ip/3137
Modules linked in: [...]
CPU: 12 UID: 0 PID: 3137 Comm: ip Not tainted 6.19.0-rc3+ #12 NONE Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 RIP: 0010:mlx5e_page_release_fragmented.isra.0+0x4a/0x50 [mlx5_core]
[...]
Call Trace: <TASK> mlx5e_dealloc_rx_wqe+0xcb/0x1a0 [mlx5_core]
mlx5e_free_rx_descs+0x7f/0x110 [mlx5_core]
mlx5e_close_rq+0x50/0x60 [mlx5_core]
mlx5e_close_queues+0x36/0x2c0 [mlx5_core]
mlx5e_close_channel+0x1c/0x50 [mlx5_core]
mlx5e_close_channels+0x45/0x80 [mlx5_core]
mlx5e_safe_switch_params+0x1a5/0x230 [mlx5_core]
mlx5e_change_mtu+0xf3/0x2f0 [mlx5_core]
netif_set_mtu_ext+0xf1/0x230 do_setlink.isra.0+0x219/0x1180 rtnl_newlink+0x79f/0xb60 rtnetlink_rcv_msg+0x213/0x3a0 netlink_rcv_skb+0x48/0xf0 netlink_unicast+0x24a/0x350 netlink_sendmsg+0x1ee/0x410 __sock_sendmsg+0x38/0x60 ____sys_sendmsg+0x232/0x280 ___sys_sendmsg+0x78/0xb0 __sys_sendmsg+0x5f/0xb0 [...]
do_syscall_64+0x57/0xc50

Этот патч исправляет проблему путем подсчета фрагментов страницы для всех исходных фрагментов буфера XDP для всех соответствующих действий XDP (XDP_TX, XDP_REDIRECT и XDP_PASS). По сути, это возврат к исходному подсчету, который был до коммита в теге fixes.

Поскольку frag_page по-прежнему указывает на исходный хвост, параметр nr_frags для xdp_update_skb_frags_info() должен рассчитываться по-другому, чтобы отразить новое значение nr_frags.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Ответственный

Linux

Резервировать

01.05.2026

Раскрытие

08.05.2026

Модерация

принято

Вход

VDB-362228

EPSS

0.00075

KEV

Нет

Деятельности

Очень низкий

Источники

Might our Artificial Intelligence support you?

Check our Alexa App!