Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
From e6ec62aa2d68e9436daeb4470260a101a06c9213 Mon Sep 17 00:00:00 2001
Comment thread
venkatchimata marked this conversation as resolved.
From: Lee Harding <somerandomstring@gmail.com>
Date: Tue, 9 Apr 2024 15:06:38 -0700
Subject: [PATCH] Allow Session-Timeout with PSK RADIUS during 4-way handshake

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 | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/ap/ieee802_11_auth.c b/src/ap/ieee802_11_auth.c
index e723ae74b..98a877dec 100644
--- a/src/ap/ieee802_11_auth.c
+++ b/src/ap/ieee802_11_auth.c
@@ -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) {
--
2.52.0

17 changes: 17 additions & 0 deletions feeds/qca-wifi-6/hostapd/patches/zzz-acl-radius-cui.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
--- a/src/ap/ieee802_11_auth.c
+++ b/src/ap/ieee802_11_auth.c
@@ -149,6 +149,14 @@
if (add_common_radius_attr(hapd, hapd->conf->radius_auth_req_attr,
NULL, msg) < 0)
goto fail;
+
+ if (hapd->conf->radius_request_cui &&
+ !radius_msg_add_attr(msg,
+ RADIUS_ATTR_CHARGEABLE_USER_IDENTITY,
+ (const u8 *) "\0", 1)) {
+ wpa_printf(MSG_DEBUG, "Could not add CUI");
+ goto fail;
+ }

os_snprintf(buf, sizeof(buf), RADIUS_802_1X_ADDR_FORMAT,
MAC2STR(addr));
Loading
Loading