CVE-2022-48969

xen-netfront: Fix NULL sring after live migration

State
Published
Severity
Not scored
Published
Oct 21, 2024
Updated
May 11, 2026
Reserved
Aug 22, 2024

Read the record on cve.org

Description

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

xen-netfront: Fix NULL sring after live migration

A NAPI is setup for each network sring to poll data to kernel The sring with source host is destroyed before live migration and new sring with target host is setup after live migration. The NAPI for the old sring is not deleted until setup new sring with target host after migration. With busy_poll/busy_read enabled, the NAPI can be polled before got deleted when resume VM.

BUG: unable to handle kernel NULL pointer dereference at 0000000000000008 IP: xennet_poll+0xae/0xd20 PGD 0 P4D 0 Oops: 0000 [#1] SMP PTI Call Trace: finish_task_switch+0x71/0x230 timerqueue_del+0x1d/0x40 hrtimer_try_to_cancel+0xb5/0x110 xennet_alloc_rx_buffers+0x2a0/0x2a0 napi_busy_loop+0xdb/0x270 sock_poll+0x87/0x90 do_sys_poll+0x26f/0x580 tracing_map_insert+0x1d4/0x2f0 event_hist_trigger+0x14a/0x260

finish_task_switch+0x71/0x230 __schedule+0x256/0x890 recalc_sigpending+0x1b/0x50 xen_sched_clock+0x15/0x20 __rb_reserve_next+0x12d/0x140 ring_buffer_lock_reserve+0x123/0x3d0 event_triggers_call+0x87/0xb0 trace_event_buffer_commit+0x1c4/0x210 xen_clocksource_get_cycles+0x15/0x20 ktime_get_ts64+0x51/0xf0 SyS_ppoll+0x160/0x1a0 SyS_ppoll+0x160/0x1a0 do_syscall_64+0x73/0x130 entry_SYSCALL_64_after_hwframe+0x41/0xa6 ... RIP: xennet_poll+0xae/0xd20 RSP: ffffb4f041933900 CR2: 0000000000000008 ---[ end trace f8601785b354351c ]---

xen frontend should remove the NAPIs for the old srings before live migration as the bond srings are destroyed

There is a tiny window between the srings are set to NULL and the NAPIs are disabled, It is safe as the NAPI threads are still frozen at that time

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 4ec2411980d0fd2995e8dea8a06fe57aa47523cb to before 99859947517e446058ad7243ee81d2f9801fa3ddAffected
  • 4ec2411980d0fd2995e8dea8a06fe57aa47523cb to before ed773dd798bf720756d20021b8d8a4a3d7184bdaAffected
  • 4ec2411980d0fd2995e8dea8a06fe57aa47523cb to before e6860c889f4ad50b6ab696f5ea154295d72cf27aAffected
  • 4ec2411980d0fd2995e8dea8a06fe57aa47523cb to before e6e897d4fe2f89c0bd94600a40bedf5e6e75e050Affected
  • 4ec2411980d0fd2995e8dea8a06fe57aa47523cb to before f2dd60fd3fe98bd36a91b0c6e10bfe9d66258f84Affected
  • 4ec2411980d0fd2995e8dea8a06fe57aa47523cb to before d50b7914fae04d840ce36491d22133070b18cca9Affected
LinuxLinux
  • 2.6.24Affected
  • before 2.6.24Not affected
  • 4.19.269 through 4.19.*Not affected
  • 5.4.227 through 5.4.*Not affected
  • 5.10.159 through 5.10.*Not affected
  • 5.15.83 through 5.15.*Not affected
  • 6.0.13 through 6.0.*Not affected
  • 6.1 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.