UBUNTU-CVE-2024-40911
In the Linux kernel, the following vulnerability has been resolved: wifi: cfg80211: Lock wiphy in cfg80211_get_station Wiphy should be locked before calling rdev_get_station() (see lockdep assert in ieee80211_get_station()). This fixes the following kernel NULL dereference: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000050 Mem abort info: ESR = 0x0000000096000006 EC = 0x25: DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 FSC = 0x06: level 2 translation fault Data abort info: ISV = 0, ISS = 0x00000006 CM = 0, WnR = 0 user pgtable: 4k pages, 48-bit VAs, pgdp=0000000003001000 [0000000000000050] pgd=0800000002dca003, p4d=0800000002dca003, pud=08000000028e9003, pmd=0000000000000000 Internal error: Oops: 0000000096000006 [#1] SMP Modules linked in: netconsole dwc3_meson_g12a dwc3_of_simple dwc3 ip_gre gre ath10k_pci ath10k_core ath9k ath9k_common ath9k_hw ath CPU: 0 PID: 1091 Comm: kworker/u8:0 Not tainted 6.4.0-02144-g565f9a3a7911-dirty #705 Hardware name: RPT (r1) (DT) Workqueue: bat_events batadv_v_elp_throughput_metric_update pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : ath10k_sta_statistics+0x10/0x2dc [ath10k_core] lr : sta_set_sinfo+0xcc/0xbd4 sp : ffff000007b43ad0 x29: ffff000007b43ad0 x28: ffff0000071fa900 x27: ffff00000294ca98 x26: ffff000006830880 x25: ffff000006830880 x24: ffff00000294c000 x23: 0000000000000001 x22: ffff000007b43c90 x21: ffff800008898acc x20: ffff00000294c6e8 x19: ffff000007b43c90 x18: 0000000000000000 x17: 445946354d552d78 x16: 62661f7200000000 x15: 57464f445946354d x14: 0000000000000000 x13: 00000000000000e3 x12: d5f0acbcebea978e x11: 00000000000000e3 x10: 000000010048fe41 x9 : 0000000000000000 x8 : ffff000007b43d90 x7 : 000000007a1e2125 x6 : 0000000000000000 x5 : ffff0000024e0900 x4 : ffff800000a0250c x3 : ffff000007b43c90 x2 : ffff00000294ca98 x1 : ffff000006831920 x0 : 0000000000000000 Call trace: ath10k_sta_statistics+0x10/0x2dc [ath10k_core] sta_set_sinfo+0xcc/0xbd4 ieee80211_get_station+0x2c/0x44 cfg80211_get_station+0x80/0x154 batadv_v_elp_get_throughput+0x138/0x1fc batadv_v_elp_throughput_metric_update+0x1c/0xa4 process_one_work+0x1ec/0x414 worker_thread+0x70/0x46c kthread+0xdc/0xe0 ret_from_fork+0x10/0x20 Code: a9bb7bfd 910003fd a90153f3 f9411c40 (f9402814) This happens because STA has time to disconnect and reconnect before batadv_v_elp_throughput_metric_update() delayed work gets scheduled. In this situation, ath10k_sta_state() can be in the middle of resetting arsta data when the work queue get chance to be scheduled and ends up accessing it. Locking wiphy prevents that.
02 / AFFECTED SOFTWARE
Affected packages
101 explicit affected versions
1 explicit affected versions
21 explicit affected versions
16 explicit affected versions
10 explicit affected versions
31 explicit affected versions
1 explicit affected versions
12 explicit affected versions
9 explicit affected versions
1 explicit affected versions
1 explicit affected versions
79 explicit affected versions
5 explicit affected versions
8 explicit affected versions
26 explicit affected versions
104 explicit affected versions
11 explicit affected versions
9 explicit affected versions
10 explicit affected versions
2 explicit affected versions
10 explicit affected versions
3 explicit affected versions
11 explicit affected versions
35 explicit affected versions
49 explicit affected versions
50 explicit affected versions
3 explicit affected versions
6 explicit affected versions
44 explicit affected versions
12 explicit affected versions
19 explicit affected versions
6 explicit affected versions
58 explicit affected versions
10 explicit affected versions
4 explicit affected versions
72 explicit affected versions
54 explicit affected versions
44 explicit affected versions
10 explicit affected versions
3 explicit affected versions
9 explicit affected versions
51 explicit affected versions
7 explicit affected versions
50 explicit affected versions
99 explicit affected versions
13 explicit affected versions
69 explicit affected versions
6 explicit affected versions
35 explicit affected versions
37 explicit affected versions
11 explicit affected versions
16 explicit affected versions
18 explicit affected versions
12 explicit affected versions
100 explicit affected versions
13 explicit affected versions
4 explicit affected versions
23 explicit affected versions
105 explicit affected versions
13 explicit affected versions
56 explicit affected versions
11 explicit affected versions
7 explicit affected versions
12 explicit affected versions
42 explicit affected versions
12 explicit affected versions
14 explicit affected versions
7 explicit affected versions
88 explicit affected versions
12 explicit affected versions
104 explicit affected versions
112 explicit affected versions
12 explicit affected versions
4 explicit affected versions
99 explicit affected versions
5 explicit affected versions
10 explicit affected versions
172 explicit affected versions
37 explicit affected versions
13 explicit affected versions
4 explicit affected versions
37 explicit affected versions
26 explicit affected versions
13 explicit affected versions
6 explicit affected versions
1 explicit affected versions
29 explicit affected versions
92 explicit affected versions
13 explicit affected versions
55 explicit affected versions
1 explicit affected versions
87 explicit affected versions
53 explicit affected versions
104 explicit affected versions
15 explicit affected versions
33 explicit affected versions
23 explicit affected versions
10 explicit affected versions
1 explicit affected versions
98 explicit affected versions
11 explicit affected versions
12 explicit affected versions
121 explicit affected versions
7 explicit affected versions
12 explicit affected versions
102 explicit affected versions
2 explicit affected versions
42 explicit affected versions
36 explicit affected versions
114 explicit affected versions
52 explicit affected versions
149 explicit affected versions
135 explicit affected versions
26 explicit affected versions
11 explicit affected versions
37 explicit affected versions
1 explicit affected versions
13 explicit affected versions
11 explicit affected versions
121 explicit affected versions
62 explicit affected versions
16 explicit affected versions
55 explicit affected versions
12 explicit affected versions
43 explicit affected versions
3 explicit affected versions
75 explicit affected versions
1 explicit affected versions
2 explicit affected versions
69 explicit affected versions
51 explicit affected versions
74 explicit affected versions
12 explicit affected versions
41 explicit affected versions
27 explicit affected versions
27 explicit affected versions
16 explicit affected versions
5 explicit affected versions
8 explicit affected versions
1 explicit affected versions
10 explicit affected versions
7 explicit affected versions
8 explicit affected versions
13 explicit affected versions
91 explicit affected versions
13 explicit affected versions
55 explicit affected versions
76 explicit affected versions
46 explicit affected versions
10 explicit affected versions
13 explicit affected versions
12 explicit affected versions
91 explicit affected versions
44 explicit affected versions
16 explicit affected versions
3 explicit affected versions
13 explicit affected versions
41 explicit affected versions
37 explicit affected versions
12 explicit affected versions
14 explicit affected versions
4 explicit affected versions
38 explicit affected versions
44 explicit affected versions
9 explicit affected versions
44 explicit affected versions
11 explicit affected versions
52 explicit affected versions
7 explicit affected versions
25 explicit affected versions
82 explicit affected versions
63 explicit affected versions
125 explicit affected versions
104 explicit affected versions
4 explicit affected versions
1 explicit affected versions
1 explicit affected versions
50 explicit affected versions
97 explicit affected versions
13 explicit affected versions
43 explicit affected versions
57 explicit affected versions
128 explicit affected versions
149 explicit affected versions
10 explicit affected versions
8 explicit affected versions
7 explicit affected versions
14 explicit affected versions
92 explicit affected versions
4 explicit affected versions
78 explicit affected versions
11 explicit affected versions
1 explicit affected versions
51 explicit affected versions
5 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
In the Linux kernel, the following vulnerability has been resolved: wifi: cfg80211: Lock wiphy in cfg80211_get_station Wiphy should be locked before calling rdev_get_station() (see lockdep assert in ieee80211_get_station()). This fixes the following kernel NULL dereference: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000050 Mem abort info: ESR = 0x0000000096000006 EC = 0x25: DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 FSC = 0x06: level 2 translation fault Data abort info: ISV = 0, ISS = 0x00000006 CM = 0, WnR = 0 user pgtable: 4k pages, 48-bit VAs, pgdp=0000000003001000 [0000000000000050] pgd=0800000002dca003, p4d=0800000002dca003, pud=08000000028e9003, pmd=0000000000000000 Internal error: Oops: 0000000096000006 [#1] SMP Modules linked in: netconsole dwc3_meson_g12a dwc3_of_simple dwc3 ip_gre gre ath10k_pci ath10k_core ath9k ath9k_common ath9k_hw ath CPU: 0 PID: 1091 Comm: kworker/u8:0 Not tainted 6.4.0-02144-g565f9a3a7911-dirty #705 Hardware name: RPT (r1) (DT) Workqueue: bat_events batadv_v_elp_throughput_metric_update pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : ath10k_sta_statistics+0x10/0x2dc [ath10k_core] lr : sta_set_sinfo+0xcc/0xbd4 sp : ffff000007b43ad0 x29: ffff000007b43ad0 x28: ffff0000071fa900 x27: ffff00000294ca98 x26: ffff000006830880 x25: ffff000006830880 x24: ffff00000294c000 x23: 0000000000000001 x22: ffff000007b43c90 x21: ffff800008898acc x20: ffff00000294c6e8 x19: ffff000007b43c90 x18: 0000000000000000 x17: 445946354d552d78 x16: 62661f7200000000 x15: 57464f445946354d x14: 0000000000000000 x13: 00000000000000e3 x12: d5f0acbcebea978e x11: 00000000000000e3 x10: 000000010048fe41 x9 : 0000000000000000 x8 : ffff000007b43d90 x7 : 000000007a1e2125 x6 : 0000000000000000 x5 : ffff0000024e0900 x4 : ffff800000a0250c x3 : ffff000007b43c90 x2 : ffff00000294ca98 x1 : ffff000006831920 x0 : 0000000000000000 Call trace: ath10k_sta_statistics+0x10/0x2dc [ath10k_core] sta_set_sinfo+0xcc/0xbd4 ieee80211_get_station+0x2c/0x44 cfg80211_get_station+0x80/0x154 batadv_v_elp_get_throughput+0x138/0x1fc batadv_v_elp_throughput_metric_update+0x1c/0xa4 process_one_work+0x1ec/0x414 worker_thread+0x70/0x46c kthread+0xdc/0xe0 ret_from_fork+0x10/0x20 Code: a9bb7bfd 910003fd a90153f3 f9411c40 (f9402814) This happens because STA has time to disconnect and reconnect before batadv_v_elp_throughput_metric_update() delayed work gets scheduled. In this situation, ath10k_sta_state() can be in the middle of resetting arsta data when the work queue get chance to be scheduled and ends up accessing it. Locking wiphy prevents that.
05 / REFERENCES
Further evidence
- https://git.kernel.org/linus/642f89daa34567d02f312d03e41523a894906dae
- https://git.kernel.org/stable/c/0ccc63958d8373e15a69f4f8069f3e78f7f3898a
- https://git.kernel.org/stable/c/43e1eefb0b2094e2281150d87d09e8bc872b9fba
- https://git.kernel.org/stable/c/642f89daa34567d02f312d03e41523a894906dae
- https://git.kernel.org/stable/c/6d540b0317901535275020bd4ac44fac6439ca76
- https://git.kernel.org/stable/c/dfd84ce41663be9ca3f69bd657c45f49b69344d9
- https://ubuntu.com/security/CVE-2024-40911
- https://ubuntu.com/security/notices/USN-6999-1
- https://ubuntu.com/security/notices/USN-6999-2
- https://ubuntu.com/security/notices/USN-7004-1
- https://ubuntu.com/security/notices/USN-7005-1
- https://ubuntu.com/security/notices/USN-7005-2
- https://ubuntu.com/security/notices/USN-7007-1
- https://ubuntu.com/security/notices/USN-7007-2
- https://ubuntu.com/security/notices/USN-7007-3
- https://ubuntu.com/security/notices/USN-7008-1
- https://ubuntu.com/security/notices/USN-7009-1
- https://ubuntu.com/security/notices/USN-7009-2
- https://ubuntu.com/security/notices/USN-7019-1
- https://ubuntu.com/security/notices/USN-7029-1
- https://ubuntu.com/security/notices/USN-7293-1
- https://ubuntu.com/security/notices/USN-7294-1
- https://ubuntu.com/security/notices/USN-7294-2
- https://ubuntu.com/security/notices/USN-7294-3
- https://ubuntu.com/security/notices/USN-7294-4
- https://ubuntu.com/security/notices/USN-7295-1
- https://ubuntu.com/security/notices/USN-7332-1
- https://ubuntu.com/security/notices/USN-7332-2
- https://ubuntu.com/security/notices/USN-7332-3
- https://ubuntu.com/security/notices/USN-7342-1
- https://ubuntu.com/security/notices/USN-7344-1
- https://ubuntu.com/security/notices/USN-7344-2
- https://ubuntu.com/security/notices/USN-7393-1
- https://ubuntu.com/security/notices/USN-7401-1
- https://ubuntu.com/security/notices/USN-7413-1
- https://ubuntu.com/security/notices/USN-7539-1
- https://ubuntu.com/security/notices/USN-7540-1
- https://www.cve.org/CVERecord?id=CVE-2024-40911