hostapd: fail R0KH and R1KH derivation when wpa_psk_file is used
authorRany Hany <rany_hany@riseup.net>
Fri, 5 Jan 2024 17:01:40 +0000 (19:01 +0200)
committerFelix Fietkau <nbd@nbd.name>
Thu, 25 Jan 2024 19:02:40 +0000 (20:02 +0100)
When wpa_psk_file is used, there is a chance that no PSK is set. This means
that the FT key will be generated using only the mobility domain which
could be considered a security vulnerability but only for a very specific
and niche config.

Signed-off-by: Rany Hany <rany_hany@riseup.net>
package/network/services/hostapd/files/hostapd.sh

index ca95fcf70f62961fb2147d8f047b6b50ec36c7f6..1a664abbf2f14ef5018541164e8b9ad340dfb37f 100644 (file)
@@ -943,6 +943,10 @@ hostapd_set_bss_options() {
                                set_default pmk_r1_push 0
 
                                [ -n "$r0kh" -a -n "$r1kh" ] || {
+                                       if [ -z "$auth_secret" -a -z "$key" ]; then
+                                               wireless_setup_vif_failed FT_KEY_CANT_BE_DERIVED
+                                               return 1
+                                       fi
                                        ft_key=`echo -n "$mobility_domain/${auth_secret:-${key}}" | md5sum | awk '{print $1}'`
 
                                        set_default r0kh "ff:ff:ff:ff:ff:ff,*,$ft_key"