]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Allow Session-Timeout with PSK RADIUS during 4-way handshake
authorLee Harding <somerandomstring@gmail.com>
Tue, 9 Apr 2024 22:06:38 +0000 (15:06 -0700)
committerJouni Malinen <j@w1.fi>
Sun, 21 Apr 2024 08:55:53 +0000 (11:55 +0300)
When the RADIUS response included a Session-Timeout attribute, but is
otherwise valid (an Access-Accept with a valid Tunnel-Password), the
association still failed due to the strict comparison of the accepted
value with HOSTAPD_ACL_ACCEPT. Apparently this combination wasn't
previously tested.

Extend this to allow a packet containing a valid Session-Timeout
attribute to be accepted by extending the "success" comparison to
include HOSTAPD_ACL_ACCEPT_TIMEOUT.

Fixes: 1c3438fec4ba ("RADIUS ACL/PSK check during 4-way handshake")
Signed-off-by: Lee Harding <somerandomstring@gmail.com>
src/ap/ieee802_11_auth.c

index e723ae74ba7fc3a89e0daf58067892458f0b3acf..98a877dece146c69b0115789bf84d040d4c2e014 100644 (file)
@@ -596,7 +596,8 @@ hostapd_acl_recv_radius(struct radius_msg *msg, struct radius_msg *req,
 
        if (query->radius_psk) {
                struct sta_info *sta;
-               bool success = cache->accepted == HOSTAPD_ACL_ACCEPT;
+               bool success = cache->accepted == HOSTAPD_ACL_ACCEPT ||
+                       cache->accepted == HOSTAPD_ACL_ACCEPT_TIMEOUT;
 
                sta = ap_get_sta(hapd, query->addr);
                if (!sta || !sta->wpa_sm) {