CVE-2022-50744
Hard Lockup in Linux lpfc Driver Due to Spinlock Flaw
Publication date: 2025-12-24
Last updated on: 2025-12-24
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| linux | kernel | * |
| emule | lpfc | * |
| emulex | lpfc | * |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-UNKNOWN |
Attack-Flow Graph
AI Powered Q&A
How can this vulnerability be detected on my network or system? Can you suggest some commands?
You can detect this vulnerability by monitoring for hard lockups or kernel panics occurring when reading the file /sys/kernel/debug/lpfc/fnX/rx_monitor. Specifically, running the command `cat /sys/kernel/debug/lpfc/fnX/rx_monitor` may trigger the issue if the system is vulnerable. Observing kernel logs for messages related to hard lockups, spin_lock failures, or stack traces involving lpfc_rx_monitor functions can also help detect the problem.
Can you explain this vulnerability to me?
This vulnerability occurs in the Linux kernel's lpfc driver, where reading the rx_monitor file from debugfs during I/O operations can cause a hard lockup (kernel panic). The issue is due to the spin_lock_bh in lpfc_rx_monitor_report not properly protecting against timer interrupts, leading to a deadlock situation. The fix involves changing the spin lock to a stronger _irq variant to prevent this hard lockup.
How can this vulnerability impact me? :
This vulnerability can cause a hard lockup or kernel panic on the affected system when the rx_monitor debugfs file is read simultaneously with I/O operations. This results in the system becoming unresponsive, potentially causing downtime and loss of availability.
What immediate steps should I take to mitigate this vulnerability?
Immediate mitigation steps include avoiding reading the /sys/kernel/debug/lpfc/fnX/rx_monitor file during I/O operations to prevent triggering the hard lockup. Applying the kernel patch that changes the spin lock from spin_lock_bh to spin_lock_irq in the lpfc_rx_monitor_report function will fix the issue. If a patch is not yet available, consider disabling or limiting access to the debugfs lpfc rx_monitor interface until the fix can be applied.