CVE-2022-50476
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
04/10/2025
Last modified:
23/01/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
ntb_netdev: Use dev_kfree_skb_any() in interrupt context<br />
<br />
TX/RX callback handlers (ntb_netdev_tx_handler(),<br />
ntb_netdev_rx_handler()) can be called in interrupt<br />
context via the DMA framework when the respective<br />
DMA operations have completed. As such, any calls<br />
by these routines to free skb&#39;s, should use the<br />
interrupt context safe dev_kfree_skb_any() function.<br />
<br />
Previously, these callback handlers would call the<br />
interrupt unsafe version of dev_kfree_skb(). This has<br />
not presented an issue on Intel IOAT DMA engines as<br />
that driver utilizes tasklets rather than a hard<br />
interrupt handler, like the AMD PTDMA DMA driver.<br />
On AMD systems, a kernel WARNING message is<br />
encountered, which is being issued from<br />
skb_release_head_state() due to in_hardirq()<br />
being true.<br />
<br />
Besides the user visible WARNING from the kernel,<br />
the other symptom of this bug was that TCP/IP performance<br />
across the ntb_netdev interface was very poor, i.e.<br />
approximately an order of magnitude below what was<br />
expected. With the repair to use dev_kfree_skb_any(),<br />
kernel WARNINGs from skb_release_head_state() ceased<br />
and TCP/IP performance, as measured by iperf, was on<br />
par with expected results, approximately 20 Gb/s on<br />
AMD Milan based server. Note that this performance<br />
is comparable with Intel based servers.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 3.9 (including) | 4.9.337 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.10 (including) | 4.14.303 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.15 (including) | 4.19.270 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (including) | 5.4.229 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.163 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.86 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.0.16 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.1 (including) | 6.1.2 (excluding) |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/07e28a8f450217db679802ebd4de0915556ce846
- https://git.kernel.org/stable/c/13286ad1c7c49c606fdcba4cf66f953a1a16c1ca
- https://git.kernel.org/stable/c/14d245da57a11e80277ab455aa9b6dcc5ed38a19
- https://git.kernel.org/stable/c/21296a52caa6a6bad6debdfe40ad81d4f1a27e69
- https://git.kernel.org/stable/c/5f7d78b2b12a9d561f48fa00bab29b40f4616dad
- https://git.kernel.org/stable/c/8b78493968ed3cef0326183ed059c55e42f24d5b
- https://git.kernel.org/stable/c/a6b9e09403102bdf8402dae734800e4916c7ea58
- https://git.kernel.org/stable/c/d4460c82177899751975180c268f352893302221
- https://git.kernel.org/stable/c/dd860b39aa7c7b82e6c99b6fdb99d4610ce49d67



