In the Linux kernel, the following vulnerability has been resolved: wifi: mac80211: use two-phase skb reclamation in ieee80211_do_stop() Since '__dev_queue_xmit()' should be called with interrupts enabled, the following backtrace: ieee80211_do_stop() ... spin_lock_irqsave(&local->queue_stop_reason_lock, flags) ... ieee80211_free_txskb() ieee80211_report_used_skb() ieee80211_report_ack_skb() cfg80211_mgmt_tx_status_ext() nl80211_frame_tx_status() genlmsg_multicast_netns() genlmsg_multicast_netns_filtered() nlmsg_multicast_filtered() netlink_broadcast_filtered() do_one_broadcast() netlink_broadcast_deliver() __netlink_sendskb() netlink_deliver_tap() __netlink_deliver_tap_skb() dev_queue_xmit() __dev_queue_xmit() ; with IRQS disabled ... spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags) issues the warning (as reported by syzbot reproducer): WARNING: CPU: 2 PID: 5128 at kernel/softirq.c:362 __local_bh_enable_ip+0xc3/0x120 Fix this by implementing a two-phase skb reclamation in 'ieee80211_do_stop()', where actual work is performed outside of a section with interrupts disabled.
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: wifi: mac80211: usar recuperación skb de dos fases en ieee80211_do_stop() Dado que '__dev_queue_xmit()' se debe llamar con las interrupciones habilitadas, se realiza el siguiente seguimiento: ieee80211_do_stop() ... spin_lock_irqsave(&local->queue_stop_reason_lock, flags) ... ieee80211_free_txskb() ieee80211_report_used_skb() ieee80211_report_ack_skb() cfg80211_mgmt_tx_status_ext() nl80211_frame_tx_status() genlmsg_multicast_netns() genlmsg_multicast_netns_filtered() con IRQS deshabilitado ... spin_unlock_irqrestore(&local->queue_stop_reason_lock, flags) emite la advertencia (según lo informado por el reproductor syzbot): ADVERTENCIA: CPU: 2 PID: 5128 en kernel/softirq.c:362 __local_bh_enable_ip+0xc3/0x120 Solucione esto implementando una recuperación de skb de dos fases en 'ieee80211_do_stop()', donde el trabajo real se realiza fuera de una sección con las interrupciones deshabilitadas.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
| Attack Vector | LOCAL |
|---|---|
| Attack Complexity | LOW |
| Privileges Required | LOW |
| User Interaction | NONE |
| Scope | UNCHANGED |
| Confidentiality Impact | NONE |
| Integrity Impact | NONE |
| Availability Impact | HIGH |
| Source | Type | Description |
|---|---|---|
| [email protected] | Primary |
en
NVD-CWE-noinfo
|
| Vendor | Product | Version | Update | Type |
|---|---|---|---|---|
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd2db21a480> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd31066b100> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36059c880> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd384212e80> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36059e980> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36059f0c0> | Operating System |
| Vulnerable | CPE |
|---|---|
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |