# CVE-2022-48914: linux: In the Linux kernel, the following vulnerability has been resolved:  xen/netfront: destroy queues before real_num_tx_...

CVE-2022-48914 is fixed in linux on 1 platform, first by DEBIAN-CVE-2022-48914, released August 22, 2024. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2022-48914
- Priority: Routine
- CVSS: 5.5 (medium)
- EPSS: 0.0022
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Aug 22, 2024

## Description

In the Linux kernel, the following vulnerability has been resolved:  xen/netfront: destroy queues before real_num_tx_queues is zeroed  xennet_destroy_queues() relies on info->netdev->real_num_tx_queues to delete queues. Since d7dac083414eb5bb99a6d2ed53dc2c1b405224e5 ("net-sysfs: update the queue counts in the unregistration path"), unregister_netdev() indirectly sets real_num_tx_queues to 0. Those two facts together means, that xennet_destroy_queues() called from xennet_remove() cannot do its job, because it's called after unregister_netdev(). This results in kfree-ing queues that are still linked in napi, which ultimately crashes:      BUG: kernel NULL pointer dereference, address: 0000000000000000     #PF: supervisor read access in kernel mode     #PF: error_code(0x0000) - not-present page     PGD 0 P4D 0     Oops: 0000 [#1] PREEMPT SMP PTI     CPU: 1 PID: 52 Comm: xenwatch Tainted: G        W         5.16.10-1.32.fc32.qubes.x86_64+ #226     RIP: 0010:free_netdev+0xa3/0x1a0     Code: ff 48 89 df e8 2e e9 00 00 48 8b 43 50 48 8b 08 48 8d b8 a0 fe ff ff 48 8d a9 a0 fe ff ff 49 39 c4 75 26 eb 47 e8 ed c1 66 ff <48> 8b 85 60 01 00 00 48 8d 95 60 01 00 00 48 89 ef 48 2d 60 01 00     RSP: 0000:ffffc90000bcfd00 EFLAGS: 00010286     RAX: 0000000000000000 RBX: ffff88800edad000 RCX: 0000000000000000     RDX: 0000000000000001 RSI: ffffc90000bcfc30 RDI: 00000000ffffffff     RBP: fffffffffffffea0 R08: 0000000000000000 R09: 0000000000000000     R10: 0000000000000000 R11: 0000000000000001 R12: ffff88800edad050     R13: ffff8880065f8f88 R14: 0000000000000000 R15: ffff8880066c6680     FS:  0000000000000000(0000) GS:ffff8880f3300000(0000) knlGS:0000000000000000     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033     CR2: 0000000000000000 CR3: 00000000e998c006 CR4: 00000000003706e0     Call Trace:      <TASK>      xennet_remove+0x13d/0x300 [xen_netfront]      xenbus_dev_remove+0x6d/0xf0      __device_release_driver+0x17a/0x240      device_release_driver+0x24/0x30      bus_remove_device+0xd8/0x140      device_del+0x18b/0x410      ? _raw_spin_unlock+0x16/0x30      ? klist_iter_exit+0x14/0x20      ? xenbus_dev_request_and_reply+0x80/0x80      device_unregister+0x13/0x60      xenbus_dev_changed+0x18e/0x1f0      xenwatch_thread+0xc0/0x1a0      ? do_wait_intr_irq+0xa0/0xa0      kthread+0x16b/0x190      ? set_kthread_struct+0x40/0x40      ret_from_fork+0x22/0x30      </TASK>  Fix this by calling xennet_destroy_queues() from xennet_uninit(), when real_num_tx_queues is still available. This ensures that queues are destroyed when real_num_tx_queues is set to 0, regardless of how unregister_netdev() was called.  Originally reported at https://github.com/QubesOS/qubes-issues/issues/7257

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | linux Debian 12.15 (bookworm) | 5.16.14-1 | [DEBIAN-CVE-2022-48914](https://patchblox.com/security/data/fix/linux/debian-cve-2022-48914.md) | Aug 22, 2024 |
| Linux | linux Debian 13.5 (trixie) | 5.16.14-1 | [DEBIAN-CVE-2022-48914](https://patchblox.com/security/data/fix/linux/debian-cve-2022-48914.md) | Aug 22, 2024 |
| Linux | linux Debian 14 | 5.16.14-1 | [DEBIAN-CVE-2022-48914](https://patchblox.com/security/data/fix/linux/debian-cve-2022-48914.md) | Aug 22, 2024 |

---

Data as of 2026-11-08T06:59:42Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
