CVE-2022-49311

drivers: staging: rtl8192bs: Fix deadlock in rtw_joinbss_event_prehandle()

State
Published
Severity
5.5 Medium
Published
Feb 26, 2025
Updated
May 11, 2026
Reserved
Feb 26, 2025

Read the record on cve.org

Description

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

drivers: staging: rtl8192bs: Fix deadlock in rtw_joinbss_event_prehandle()

There is a deadlock in rtw_joinbss_event_prehandle(), which is shown below:

(Thread 1) | (Thread 2) | _set_timer() rtw_joinbss_event_prehandle()| mod_timer() spin_lock_bh() //(1) | (wait a time) ... | _rtw_join_timeout_handler() del_timer_sync() | spin_lock_bh() //(2) (wait timer to stop) | ...

We hold pmlmepriv->lock in position (1) of thread 1 and use del_timer_sync() to wait timer to stop, but timer handler also need pmlmepriv->lock in position (2) of thread 2. As a result, rtw_joinbss_event_prehandle() will block forever.

This patch extracts del_timer_sync() from the protection of spin_lock_bh(), which could let timer handler to obtain the needed lock. What`s more, we change spin_lock_bh() to spin_lock_irq() in _rtw_join_timeout_handler() in order to prevent deadlock.

Scores

CVSSScoreVectorSource
3.15.5 MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HCISA-ADP

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 554c0a3abf216c991c5ebddcdb2c08689ecd290b to before ae60744d5fad840b9d056d35b4b652d95e755846Affected
  • 554c0a3abf216c991c5ebddcdb2c08689ecd290b to before 1f6c99b94ca3caad346876b3e22e3ca3d25bc8eeAffected
  • 554c0a3abf216c991c5ebddcdb2c08689ecd290b to before eca9748d9267a38d532464e3305a38629e9c35a9Affected
  • 554c0a3abf216c991c5ebddcdb2c08689ecd290b to before 041879b12ddb0c6c83ed9c0bdd10dc82a056f2fcAffected
LinuxLinux
  • 4.12Affected
  • before 4.12Not affected
  • 5.15.47 through 5.15.*Not affected
  • 5.17.15 through 5.17.*Not affected
  • 5.18.4 through 5.18.*Not affected
  • 5.19 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.