Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2022-48840— iavf: Fix hang during reboot/shutdown

EPSS 0.02% · P5
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2022-48840

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
iavf: Fix hang during reboot/shutdown
Source: NVD (National Vulnerability Database)
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: iavf: Fix hang during reboot/shutdown Recent commit 974578017fc1 ("iavf: Add waiting so the port is initialized in remove") adds a wait-loop at the beginning of iavf_remove() to ensure that port initialization is finished prior unregistering net device. This causes a regression in reboot/shutdown scenario because in this case callback iavf_shutdown() is called and this callback detaches the device, makes it down if it is running and sets its state to __IAVF_REMOVE. Later shutdown callback of associated PF driver (e.g. ice_shutdown) is called. That callback calls among other things sriov_disable() that calls indirectly iavf_remove() (see stack trace below). As the adapter state is already __IAVF_REMOVE then the mentioned loop is end-less and shutdown process hangs. The patch fixes this by checking adapter's state at the beginning of iavf_remove() and skips the rest of the function if the adapter is already in remove state (shutdown is in progress). Reproducer: 1. Create VF on PF driven by ice or i40e driver 2. Ensure that the VF is bound to iavf driver 3. Reboot [52625.981294] sysrq: SysRq : Show Blocked State [52625.988377] task:reboot state:D stack: 0 pid:17359 ppid: 1 f2 [52625.996732] Call Trace: [52625.999187] __schedule+0x2d1/0x830 [52626.007400] schedule+0x35/0xa0 [52626.010545] schedule_hrtimeout_range_clock+0x83/0x100 [52626.020046] usleep_range+0x5b/0x80 [52626.023540] iavf_remove+0x63/0x5b0 [iavf] [52626.027645] pci_device_remove+0x3b/0xc0 [52626.031572] device_release_driver_internal+0x103/0x1f0 [52626.036805] pci_stop_bus_device+0x72/0xa0 [52626.040904] pci_stop_and_remove_bus_device+0xe/0x20 [52626.045870] pci_iov_remove_virtfn+0xba/0x120 [52626.050232] sriov_disable+0x2f/0xe0 [52626.053813] ice_free_vfs+0x7c/0x340 [ice] [52626.057946] ice_remove+0x220/0x240 [ice] [52626.061967] ice_shutdown+0x16/0x50 [ice] [52626.065987] pci_device_shutdown+0x34/0x60 [52626.070086] device_shutdown+0x165/0x1c5 [52626.074011] kernel_restart+0xe/0x30 [52626.077593] __do_sys_reboot+0x1d2/0x210 [52626.093815] do_syscall_64+0x5b/0x1a0 [52626.097483] entry_SYSCALL_64_after_hwframe+0x65/0xca
Source: NVD (National Vulnerability Database)
CVSS Information
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Type
N/A
Source: NVD (National Vulnerability Database)
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel 存在安全漏洞,该漏洞源于iavf模块中发现重启/关机时的挂起问题。在iavf_remove函数中添加的等待循环可能会导致重启或关机时的死循环。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux 85aa76066fef64de8a48d0da6b4071ceac455a94 ~ 80974bb730270199c6fcb189af04d5945b87e813 -
LinuxLinux 5.15.27 ~ 5.15.31 -

II. Public POCs for CVE-2022-48840

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2022-48840

登录查看更多情报信息。

Same Patch Batch · Linux · 2024-07-16 · 98 CVEs total

CVE-2022-48831ima: fix reference leak in asymmetric_verify()
CVE-2022-48825scsi: qedf: Add stag_work to all the vports
CVE-2022-48821misc: fastrpc: avoid double fput() on failed usercopy
CVE-2022-48819tcp: take care of mixed splice()/sendmsg(MSG_ZEROCOPY) case
CVE-2022-48820phy: stm32: fix a refcount leak in stm32_usbphyc_pll_enable()
CVE-2022-48818net: dsa: mv88e6xxx: don't use devres for mdiobus
CVE-2022-48817net: dsa: ar9331: register the mdiobus under devres
CVE-2022-48822usb: f_fs: Fix use-after-free for epfile
CVE-2022-48828NFSD: Fix ia_size underflow
CVE-2022-48830can: isotp: fix potential CAN frame reception race in isotp_rcv()
CVE-2022-48829NFSD: Fix NFSv3 SETATTR/CREATE's handling of large file sizes
CVE-2022-48832audit: don't deref the syscall args when checking the openat2 open_how::flags
CVE-2022-48834usb: usbtmc: Fix bug in pipe direction for control transfers
CVE-2022-48833btrfs: skip reserved bytes warning on unmount after log cleanup failure
CVE-2022-48835scsi: mpt3sas: Page fault in reply q processing
CVE-2022-48837usb: gadget: rndis: prevent integer overflow in rndis_set_response()
CVE-2022-48836Input: aiptek - properly check endpoint type
CVE-2022-48838usb: gadget: Fix use-after-free bug by not setting udc->dev.driver
CVE-2022-48839net/packet: fix slab-out-of-bounds access in packet_recvmsg()
CVE-2022-48842ice: Fix race condition during interface enslave

Showing top 20 of 98 CVEs. View all on vendor page → →

IV. Related Vulnerabilities

V. Comments for CVE-2022-48840

No comments yet


Leave a comment