CVE-2021-47127

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

ice: track AF_XDP ZC enabled queues in bitmap

Commit c7a219048e45 ("ice: Remove xsk_buff_pool from VSI structure")
silently introduced a regression and broke the Tx side of AF_XDP in copy
mode. xsk_pool on ice_ring is set only based on the existence of the XDP
prog on the VSI which in turn picks ice_clean_tx_irq_zc to be executed.
That is not something that should happen for copy mode as it should use
the regular data path ice_clean_tx_irq.

This results in a following splat when xdpsock is run in txonly or l2fwd
scenarios in copy mode:

<snip>
[  106.050195] BUG: kernel NULL pointer dereference, address: 0000000000000030
[  106.057269] #PF: supervisor read access in kernel mode
[  106.062493] #PF: error_code(0x0000) - not-present page
[  106.067709] PGD 0 P4D 0
[  106.070293] Oops: 0000 [#1] PREEMPT SMP NOPTI
[  106.074721] CPU: 61 PID: 0 Comm: swapper/61 Not tainted 5.12.0-rc2+ #45
[  106.081436] Hardware name: Intel Corporation S2600WFT/S2600WFT, BIOS SE5C620.86B.02.01.0008.031920191559 03/19/2019
[  106.092027] RIP: 0010:xp_raw_get_dma+0x36/0x50
[  106.096551] Code: 74 14 48 b8 ff ff ff ff ff ff 00 00 48 21 f0 48 c1 ee 30 48 01 c6 48 8b 87 90 00 00 00 48 89 f2 81 e6 ff 0f 00 00 48 c1 ea 0c <48> 8b 04 d0 48 83 e0 fe 48 01 f0 c3 66 66 2e 0f 1f 84 00 00 00 00
[  106.115588] RSP: 0018:ffffc9000d694e50 EFLAGS: 00010206
[  106.120893] RAX: 0000000000000000 RBX: ffff88984b8c8a00 RCX: ffff889852581800
[  106.128137] RDX: 0000000000000006 RSI: 0000000000000000 RDI: ffff88984cd8b800
[  106.135383] RBP: ffff888123b50001 R08: ffff889896800000 R09: 0000000000000800
[  106.142628] R10: 0000000000000000 R11: ffffffff826060c0 R12: 00000000000000ff
[  106.149872] R13: 0000000000000000 R14: 0000000000000040 R15: ffff888123b50018
[  106.157117] FS:  0000000000000000(0000) GS:ffff8897e0f40000(0000) knlGS:0000000000000000
[  106.165332] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  106.171163] CR2: 0000000000000030 CR3: 000000000560a004 CR4: 00000000007706e0
[  106.178408] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  106.185653] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[  106.192898] PKRU: 55555554
[  106.195653] Call Trace:
[  106.198143]  <IRQ>
[  106.200196]  ice_clean_tx_irq_zc+0x183/0x2a0 [ice]
[  106.205087]  ice_napi_poll+0x3e/0x590 [ice]
[  106.209356]  __napi_poll+0x2a/0x160
[  106.212911]  net_rx_action+0xd6/0x200
[  106.216634]  __do_softirq+0xbf/0x29b
[  106.220274]  irq_exit_rcu+0x88/0xc0
[  106.223819]  common_interrupt+0x7b/0xa0
[  106.227719]  </IRQ>
[  106.229857]  asm_common_interrupt+0x1e/0x40
</snip>

Fix this by introducing the bitmap of queues that are zero-copy enabled,
where each bit, corresponding to a queue id that xsk pool is being
configured on, will be set/cleared within ice_xsk_pool_{en,dis}able and
checked within ice_xsk_pool(). The latter is a function used for
deciding which napi poll routine is executed.
Idea is being taken from our other drivers such as i40e and ixgbe.
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTNIST
5.5 MEDIUM
LOCAL
LOW
LOW
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
LinuxCNA
---
---
CVEADP
---
---
CISA-ADPADP
---
---
Base Score
CVSS 3.x
EPSS Score
Percentile: Unknown
VendorProductVersion
linuxlinux_kernel
5.12 ≤
𝑥
< 5.12.10
linuxlinux_kernel
5.13:rc1
linuxlinux_kernel
5.13:rc2
linuxlinux_kernel
5.13:rc3
linuxlinux_kernel
5.13:rc4
𝑥
= Vulnerable software versions
Debian logo
Debian Releases
Debian Product
Codename
linux
bullseye
5.10.223-1
fixed
bullseye (security)
5.10.226-1
fixed
bookworm
6.1.106-3
fixed
bookworm (security)
6.1.112-1
fixed
trixie
6.11.5-1
fixed
sid
6.11.6-1
fixed
Ubuntu logo
Ubuntu Releases
Ubuntu Product
Codename
linux
noble
not-affected
mantic
not-affected
jammy
not-affected
focal
not-affected
bionic
not-affected
xenial
not-affected
trusty
not-affected
linux-allwinner-5.19
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-aws
noble
not-affected
mantic
not-affected
jammy
not-affected
focal
not-affected
bionic
not-affected
xenial
not-affected
trusty
not-affected
linux-aws-5.0
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
ignored
linux-aws-5.11
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-aws-5.13
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-aws-5.15
noble
dne
mantic
dne
jammy
dne
focal
not-affected
linux-aws-5.19
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-aws-5.3
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
ignored
linux-aws-5.4
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
not-affected
linux-aws-5.8
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-aws-6.2
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-aws-6.5
noble
dne
mantic
dne
jammy
not-affected
focal
dne
linux-aws-fips
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-aws-hwe
noble
dne
mantic
dne
jammy
dne
focal
dne
xenial
not-affected
linux-azure
noble
not-affected
mantic
not-affected
jammy
not-affected
focal
not-affected
bionic
ignored
xenial
not-affected
trusty
not-affected
linux-azure-4.15
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
not-affected
linux-azure-5.11
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-azure-5.13
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-azure-5.15
noble
dne
mantic
dne
jammy
dne
focal
not-affected
linux-azure-5.19
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-azure-5.3
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
ignored
linux-azure-5.4
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
not-affected
linux-azure-5.8
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-azure-6.2
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-azure-6.5
noble
dne
mantic
dne
jammy
not-affected
focal
dne
linux-azure-edge
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
ignored
linux-azure-fde
noble
dne
mantic
dne
jammy
not-affected
focal
ignored
linux-azure-fde-5.15
noble
dne
mantic
dne
jammy
dne
focal
not-affected
linux-azure-fde-5.19
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-azure-fde-6.2
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-azure-fips
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-bluefield
noble
dne
mantic
dne
jammy
not-affected
focal
not-affected
linux-fips
noble
dne
mantic
dne
jammy
dne
focal
dne
linux-gcp
noble
not-affected
mantic
not-affected
jammy
not-affected
focal
not-affected
bionic
ignored
xenial
not-affected
linux-gcp-4.15
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
not-affected
linux-gcp-5.11
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-gcp-5.13
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-gcp-5.15
noble
dne
mantic
dne
jammy
dne
focal
not-affected
linux-gcp-5.19
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-gcp-5.3
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
ignored
linux-gcp-5.4
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
not-affected
linux-gcp-5.8
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-gcp-6.2
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-gcp-6.5
noble
dne
mantic
dne
jammy
not-affected
focal
dne
linux-gcp-fips
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-gke
noble
not-affected
mantic
dne
jammy
not-affected
focal
ignored
linux-gke-4.15
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
ignored
linux-gke-5.15
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-gke-5.4
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
ignored
linux-gkeop
noble
dne
mantic
dne
jammy
not-affected
focal
not-affected
linux-gkeop-5.15
noble
dne
mantic
dne
jammy
dne
focal
not-affected
linux-gkeop-5.4
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
ignored
linux-hwe
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
ignored
xenial
not-affected
linux-hwe-5.11
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-hwe-5.13
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-hwe-5.15
noble
dne
mantic
dne
jammy
dne
focal
not-affected
linux-hwe-5.19
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-hwe-5.4
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
not-affected
linux-hwe-5.8
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-hwe-6.2
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-hwe-6.5
noble
dne
mantic
dne
jammy
not-affected
focal
dne
linux-hwe-edge
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
ignored
xenial
ignored
linux-ibm
noble
not-affected
mantic
ignored
jammy
not-affected
focal
not-affected
linux-ibm-5.15
noble
dne
mantic
dne
jammy
dne
focal
not-affected
linux-ibm-5.4
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
not-affected
linux-intel
noble
not-affected
mantic
dne
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-intel-5.13
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-intel-iotg
noble
dne
mantic
dne
jammy
not-affected
focal
dne
linux-intel-iotg-5.15
noble
dne
mantic
dne
jammy
dne
focal
not-affected
linux-iot
noble
dne
mantic
dne
jammy
dne
focal
not-affected
linux-kvm
noble
dne
mantic
dne
jammy
not-affected
focal
not-affected
bionic
not-affected
xenial
not-affected
linux-laptop
noble
dne
mantic
not-affected
jammy
dne
focal
dne
linux-lowlatency
noble
not-affected
mantic
not-affected
jammy
not-affected
focal
dne
linux-lowlatency-hwe-5.15
noble
dne
mantic
dne
jammy
dne
focal
not-affected
linux-lowlatency-hwe-5.19
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-lowlatency-hwe-6.2
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-lowlatency-hwe-6.5
noble
dne
mantic
dne
jammy
not-affected
focal
dne
linux-lts-xenial
noble
dne
mantic
dne
jammy
dne
focal
dne
trusty
not-affected
linux-nvidia
noble
not-affected
mantic
dne
jammy
not-affected
focal
dne
linux-nvidia-6.2
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-nvidia-6.5
noble
dne
mantic
dne
jammy
not-affected
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-6.8
noble
dne
jammy
not-affected
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-nvidia-lowlatency
noble
not-affected
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oem
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
ignored
linux-oem-5.10
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-oem-5.13
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-oem-5.14
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-oem-5.17
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-oem-5.6
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-oem-6.0
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-oem-6.1
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-oem-6.5
noble
dne
mantic
dne
jammy
not-affected
focal
dne
linux-oem-6.8
noble
not-affected
mantic
dne
jammy
dne
focal
dne
bionic
dne
xenial
dne
trusty
dne
linux-oracle
noble
not-affected
mantic
not-affected
jammy
not-affected
focal
not-affected
bionic
not-affected
xenial
not-affected
linux-oracle-5.0
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
ignored
linux-oracle-5.11
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-oracle-5.13
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-oracle-5.15
noble
dne
mantic
dne
jammy
dne
focal
not-affected
linux-oracle-5.3
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
ignored
linux-oracle-5.4
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
not-affected
linux-oracle-5.8
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-oracle-6.5
noble
dne
mantic
dne
jammy
not-affected
focal
dne
linux-raspi
noble
not-affected
mantic
not-affected
jammy
not-affected
focal
not-affected
linux-raspi-5.4
noble
dne
mantic
dne
jammy
dne
focal
dne
bionic
not-affected
linux-raspi2
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-riscv
noble
not-affected
mantic
not-affected
jammy
ignored
focal
ignored
linux-riscv-5.11
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-riscv-5.15
noble
dne
mantic
dne
jammy
dne
focal
not-affected
linux-riscv-5.19
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-riscv-5.8
noble
dne
mantic
dne
jammy
dne
focal
ignored
linux-riscv-6.5
noble
dne
mantic
dne
jammy
not-affected
focal
dne
linux-starfive
noble
dne
mantic
not-affected
jammy
dne
focal
dne
linux-starfive-5.19
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-starfive-6.2
noble
dne
mantic
dne
jammy
ignored
focal
dne
linux-starfive-6.5
noble
dne
mantic
dne
jammy
not-affected
focal
dne
linux-xilinx-zynqmp
noble
dne
mantic
dne
jammy
not-affected
focal
not-affected