// For flags

CVE-2022-48705

wifi: mt76: mt7921e: fix crash in chip reset fail

Severity Score

"-"
*CVSS v-

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track
*SSVC
Descriptions

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

wifi: mt76: mt7921e: fix crash in chip reset fail

In case of drv own fail in reset, we may need to run mac_reset several
times. The sequence would trigger system crash as the log below.

Because we do not re-enable/schedule "tx_napi" before disable it again,
the process would keep waiting for state change in napi_diable(). To
avoid the problem and keep status synchronize for each run, goto final
resource handling if drv own failed.

[ 5857.353423] mt7921e 0000:3b:00.0: driver own failed
[ 5858.433427] mt7921e 0000:3b:00.0: Timeout for driver own
[ 5859.633430] mt7921e 0000:3b:00.0: driver own failed
[ 5859.633444] ------------[ cut here ]------------
[ 5859.633446] WARNING: CPU: 6 at kernel/kthread.c:659 kthread_park+0x11d
[ 5859.633717] Workqueue: mt76 mt7921_mac_reset_work [mt7921_common]
[ 5859.633728] RIP: 0010:kthread_park+0x11d/0x150
[ 5859.633736] RSP: 0018:ffff8881b676fc68 EFLAGS: 00010202
......
[ 5859.633766] Call Trace:
[ 5859.633768] <TASK>
[ 5859.633771] mt7921e_mac_reset+0x176/0x6f0 [mt7921e]
[ 5859.633778] mt7921_mac_reset_work+0x184/0x3a0 [mt7921_common]
[ 5859.633785] ? mt7921_mac_set_timing+0x520/0x520 [mt7921_common]
[ 5859.633794] ? __kasan_check_read+0x11/0x20
[ 5859.633802] process_one_work+0x7ee/0x1320
[ 5859.633810] worker_thread+0x53c/0x1240
[ 5859.633818] kthread+0x2b8/0x370
[ 5859.633824] ? process_one_work+0x1320/0x1320
[ 5859.633828] ? kthread_complete_and_exit+0x30/0x30
[ 5859.633834] ret_from_fork+0x1f/0x30
[ 5859.633842] </TASK>

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: wifi: mt76: mt7921e: reparación del fallo en el reinicio del chip. En caso de que el propio drv falle en el reinicio, es posible que necesitemos ejecutar mac_reset varias veces. La secuencia provocaría un fallo del sistema como se muestra en el siguiente registro. Debido a que no volvemos a habilitar/programar "tx_napi" antes de deshabilitarlo nuevamente, el proceso seguirá esperando el cambio de estado en napi_diable(). Para evitar el problema y mantener el estado sincronizado para cada ejecución, vaya al manejo de recursos finales si el propio drv falla. [ 5857.353423] mt7921e 0000:3b:00.0: el controlador propio falló [ 5858.433427] mt7921e 0000:3b:00.0: Tiempo de espera para el controlador propio [ 5859.633430] mt7921e 0000:3b:00.0: el controlador propio falló [ 5859. 633444] ------- -----[ cortar aquí ]------------ [ 5859.633446] ADVERTENCIA: CPU: 6 en kernel/kthread.c:659 kthread_park+0x11d [ 5859.633717] Cola de trabajo: mt76 mt7921_mac_reset_work [mt7921_common] [ 5859.633728] RIP: 0010:kthread_park+0x11d/0x150 [ 5859.633736] RSP: 0018:ffff8881b676fc68 EFLAGS: 00010202 ...... [ 5859.633766] Seguimiento de llamadas: [ 5859.633768 ] [ 5859.633771] mt7921e_mac_reset+0x176/0x6f0 [ mt7921e] [5859.633778] mt7921_mac_reset_work+0x184/0x3a0 [mt7921_common] [5859.633785]? mt7921_mac_set_timing+0x520/0x520 [mt7921_common] [5859.633794]? __kasan_check_read+0x11/0x20 [ 5859.633802] proceso_one_work+0x7ee/0x1320 [ 5859.633810] trabajador_thread+0x53c/0x1240 [ 5859.633818] kthread+0x2b8/0x370 [ 5859.633824] ? proceso_one_work+0x1320/0x1320 [5859.633828]? kthread_complete_and_exit+0x30/0x30 [ 5859.633834] ret_from_fork+0x1f/0x30 [ 5859.633842]

*Credits: N/A
CVSS Scores
Attack Vector
-
Attack Complexity
-
Privileges Required
-
User Interaction
-
Scope
-
Confidentiality
-
Integrity
-
Availability
-
* Common Vulnerability Scoring System
SSVC
  • Decision:Track
Exploitation
None
Automatable
No
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2024-05-03 CVE Reserved
  • 2024-05-03 CVE Published
  • 2024-05-04 EPSS Updated
  • 2024-08-03 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 5.17 < 5.19.9
Search vendor "Linux" for product "Linux Kernel" and version " >= 5.17 < 5.19.9"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
>= 5.17 < 6.0
Search vendor "Linux" for product "Linux Kernel" and version " >= 5.17 < 6.0"
en
Affected
Linux
Search vendor "Linux"
Linux Kernel
Search vendor "Linux" for product "Linux Kernel"
5.16.3
Search vendor "Linux" for product "Linux Kernel" and version "5.16.3"
en
Affected