LinuxのLinux Kernelにおける不特定の脆弱性
タイトル LinuxのLinux Kernelにおける不特定の脆弱性
概要

Linuxカーネルにおいて、以下の脆弱性が修正されました。net/mlx5eに関して、RXおよびレガシーRQ向けのXDPマルチバッファ断片カウントに関する問題が修正されました。XDPマルチバッファプログラムは、bpf_xdp_pull_data()またはbpf_xdp_adjust_tail()を呼び出す際にXDPバッファのレイアウトを変更可能です。修正タグのコミットは、mlx5ドライバがプログラム実行中にXDPバッファレイアウトが変更されないという前提を修正しました。しかし、この修正は別の問題を引き起こしました。ドロップされた断片は依然としてドライバ側でカウントする必要があり、ページ断片の参照カウント問題を回避しなければなりません。この問題は、3600のペイロードを使用し256バイト縮小するtest_xdp_native_adjst_tail_shrnk_dataのセルフテスト(今後のセルフテストパッチ)で確認されました。最後の断片はXDPコードで解放されますがドライバで追跡されません。その結果、ページ解放時に負のpp_ref_countが発生し、以下のスプラット(クラッシュ)が起きます。警告はinclude/net/page_pool/helpers.h:297のmlx5e_page_release_fragmented.isra.0+0x4a/0x50 [mlx5_core]、CPU#12で発生しました。このパッチは、すべての関連するXDPアクション(XDP_TX、XDP_REDIRECT、XDP_PASS)に対して元のXDPバッファ断片のページ断片カウントを行うことで問題を修正しています。基本的には修正タグのコミット前の元のカウント方法に戻す対応です。frag_pageは依然として元のテールを指しているため、xdp_update_skb_frags_info()へのnr_fragsパラメータは新しいnr_fragsを反映するように異なる方法で計算されています。

想定される影響 当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 また、当該ソフトウェアが扱う情報について、書き換えは発生しません。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。

公表日 2026年5月8日0:00
登録日 2026年5月22日10:53
最終更新日 2026年5月22日10:53
CVSS3.0 : 重要
スコア 7.5
ベクター CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
影響を受けるシステム
Linux
Linux Kernel 6.12.56 以上 6.13 未満
Linux Kernel 6.17.6 以上 6.18 未満
Linux Kernel 6.18
Linux Kernel 6.18.1 以上 6.18.19 未満
Linux Kernel 6.19 以上 6.19.9 未満
Linux Kernel 6.6.115 以上 6.7 未満
Linux Kernel 7.0
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
その他
変更履歴
No 変更内容 変更日
1 [2026年05月22日]
  掲載
2026年5月22日10:53

NVD脆弱性情報
CVE-2026-43464
概要

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

net/mlx5e: RX, Fix XDP multi-buf frag counting for legacy RQ

XDP multi-buf programs can modify the layout of the XDP buffer when the
program calls bpf_xdp_pull_data() or bpf_xdp_adjust_tail(). The
referenced commit in the fixes tag corrected the assumption in the mlx5
driver that the XDP buffer layout doesn't change during a program
execution. However, this fix introduced another issue: the dropped
fragments still need to be counted on the driver side to avoid page
fragment reference counting issues.

Such issue can be observed with the
test_xdp_native_adjst_tail_shrnk_data selftest when using a payload of
3600 and shrinking by 256 bytes (an upcoming selftest patch): the last
fragment gets released by the XDP code but doesn't get tracked by the
driver. This results in a negative pp_ref_count during page release and
the following 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

This patch fixes the issue by doing page frag counting on all the
original XDP buffer fragments for all relevant XDP actions (XDP_TX ,
XDP_REDIRECT and XDP_PASS). This is basically reverting to the original
counting before the commit in the fixes tag.

As frag_page is still pointing to the original tail, the nr_frags
parameter to xdp_update_skb_frags_info() needs to be calculated
in a different way to reflect the new nr_frags.

公表日 2026年5月9日0:16
登録日 2026年5月9日4:15
最終更新日 2026年5月12日23:10
関連情報、対策とツール
共通脆弱性一覧