CVE: CVE-2022-50003
Published: 2025-06-18
Description: In the Linux kernel, the following vulnerability has been resolved:

ice: xsk: prohibit usage of non-balanced queue id

Fix the following scenario:
1. ethtool -L $IFACE rx 8 tx 96
2. xdpsock -q 10 -t -z

Above refers to a case where user would like to attach XSK socket in
txonly mode at a queue id that does not have a corresponding Rx queue.
At this moment ice's XSK logic is tightly bound to act on a "queue pair",
e.g. both Tx and Rx queues at a given queue id are disabled/enabled and
both of them will get XSK pool assigned, which is broken for the presented
queue configuration. This results in the splat included at the bottom,
which is basically an OOB access to Rx ring array.

To fix this, allow using the ids only in scope of "combined" queues
reported by ethtool. However, logic should be rewritten to allow such
configurations later on, which would end up as a complete rewrite of the
control path, so let us go with this temporary fix.

[[PII_REDACTED]08] BUG: kernel NULL pointer dereference, address: [PII_REDACTED]
[[PII_REDACTED]59] #PF: supervisor read access in kernel mode
[[PII_REDACTED]57] #PF: error_code(0x0000) - not-present page
[[PII_REDACTED]02] PGD 0 P4D 0
[[PII_REDACTED]56] Oops: 0000 [#1] PREEMPT SMP NOPTI
[[PII_REDACTED]96] CPU: 10 PID: 21232 Comm: xdpsock Tainted: G           OE     5.19.0-rc7+ #10
[[PII_REDACTED]93] Hardware name: Intel Corporation S2600WFT/S2600WFT, BIOS SE5C620.86B.02.01.0[PII_REDACTED]91559 03/19/2019
[[PII_REDACTED]94] RIP: 0010:ice_xsk_pool_setup+0x44/0x7d0 [ice]
[[PII_REDACTED]68] Code: f3 48 83 ec 40 48 8b 4f 20 48 8b 3f 65 48 8b 04 25 28 00 00 00 48 89 44 24 38 31 c0 48 8d 04 ed 00 00 00 00 48 01 c1 48 8b 11 <0f> b7 92 82 00 00 00 48 85 d2 0f 84 2d 75 00 00 48 8d 72 ff 48 85
[[PII_REDACTED]21] RSP: 0018:ffffc9002d2afd48 EFLAGS: 00010282
[[PII_REDACTED]50] RAX: [PII_REDACTED] RBX: ffff88811d8bdd00 RCX: ffff888112c14ff8
[[PII_REDACTED]93] RDX: [PII_REDACTED] RSI: ffff88811d8bdd00 RDI: ffff[PII_REDACTED]00
[[PII_REDACTED]66] RBP:[PII_REDACTED]00000a R08:[PII_REDACTED]00000a R09: [PII_REDACTED]
[[PII_REDACTED]93] R10:[PII_REDACTED]00889f R11: [PII_REDACTED] R12:[PII_REDACTED]00000a
[[PII_REDACTED]33] R13:[PII_REDACTED]00000a R14: [PII_REDACTED] R15: ffff[PII_REDACTED]28
[[PII_REDACTED]11] FS:  00007fa869fc1f80(0000) GS:ffff8897e0880000(0000) knlGS:[PII_REDACTED]
[[PII_REDACTED]45] CS:  0010 DS: 0000 ES: 0000 CR0: [PII_REDACTED]
[[PII_REDACTED]83] CR2: [PII_REDACTED] CR3: 00000001d076c001 CR4:[PII_REDACTED]7706e0
[[PII_REDACTED]99] DR0: [PII_REDACTED] DR1: [PII_REDACTED] DR2: [PII_REDACTED]
[[PII_REDACTED]45] DR3: [PII_REDACTED] DR6: 00000000fffe0ff0 DR7: [PII_REDACTED]
[[PII_REDACTED]07] PKRU: 55555554
[[PII_REDACTED]60] Call Trace:
[[PII_REDACTED]62]  <TASK>
[[PII_REDACTED]97]  ? kmalloc_large_node+0x79/0x90
[[PII_REDACTED]03]  ? __kmalloc_node+0x3f5/0x4b0
[[PII_REDACTED]41]  xp_assign_dev+0xfd/0x210
[[PII_REDACTED]61]  ? shmem_file_read_iter+0x29a/0x420
[[PII_REDACTED]96]  xsk_bind+0x152/0x490
[[PII_REDACTED]43]  __sys_bind+0xd0/0x100
[[PII_REDACTED]97]  ? exit_to_user_mode_prepare+0x20/0x120
[[PII_REDACTED]01]  __x64_sys_bind+0x16/0x20
[[PII_REDACTED]98]  do_syscall_64+0x38/0x90
[[PII_REDACTED]41]  entry_SYSCALL_64_after_hwframe+0x63/0xcd
[[PII_REDACTED]31] RIP: 0033:0x7fa86a0dd2fb
[[PII_REDACTED]64] Code: c3 66 0f 1f 44 00 00 48 8b 15 69 8b 0c 00 f7 d8 64 89 02 b8 ff ff ff ff eb bc 0f 1f 44 00 00 f3 0f 1e fa b8 31 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 3d 8b 0c 00 f7 d8 64 89 01 48
[[PII_REDACTED]10] RSP: 002b:00007ffc1146f618 EFLAGS: 00000246 ORIG_RAX: [PII_REDACTED]
[[PII_REDACTED]66] RAX: ffffffffffffffda RBX: [PII_REDACTED] RCX: 00007fa86a0dd2fb
[[PII_REDACTED]57] RDX: [PII_REDACTED] RSI: 00007ffc1146f680 RDI: [PII_REDACTED]
[[PII_REDACTED]04] RBP: 000055d7113a0520 R08: 00007fa868fb8000 R09: [PII_REDACTED]
[[PII_REDACTED]93] R10: [PII_REDACTED] R11: [PII_REDACTED] R12: 000055d7113a04e0
[[PII_REDACTED]38] R13: 000055d7113a0320 R14:[PII_REDACTED]00000a R15: [PII_REDACTED]
[[PII_REDACTED]17]  </TASK>
[[PII_REDACTED]59] Modules linked in: ice(OE) af_packet binfmt_misc
---truncated---
CVSS Score: 5.5 (MEDIUM)
CWE: CWE-476
References: https://git.kernel.org/stable/c/03a3f29fe5b1751ad9b5c892c894183e75a6e4c4; https://git.kernel.org/stable/c/1bfdcde723d8ceb2d73291b0415767e7c1cc1d8a; https://git.kernel.org/stable/c/5a42f112d367bb4700a8a41f5c12724fde6bfbb9