openwrt-pf/package/network/config
Hauke Mehrtens 2db148c062 wifi-scripts: ucode: advertise Transition Disable on WPA3-only BSSes
WPA3 Specification v3.5 §13 defines the Transition Disable element sent
inside message 3 of the 4-way handshake.  An AP that is no longer
offering a transition mode for its SSID sets the matching bit so that
compliant STAs permanently stop falling back to WPA-PSK / WPA-EAP /
open for that SSID, hardening against downgrade attacks and against
operator mistakes where a transition-mode BSS is briefly brought up on
an SSID that previously ran WPA3-only.

Expose this as a UCI list 'transition_disable' with three classes of
entries:

  * The existing OpenWrt encryption tokens 'sae' (bit 0x01), 'sae-pk'
    (0x02), 'wpa3' (0x04) and 'owe' (0x08) OR into the bitmap.  SAE-PK
    itself is not yet wired through wifi-scripts; the token only lets
    an operator who configured SAE-PK out of band also hand the
    matching bit to hostapd.

  * 'on' derives the bitmap from the AP's auth_type ('sae' -> 0x01,
    'eap2'/'eap192' -> 0x04, pure 'owe' -> 0x08) and overrides any
    other explicit tokens in the same list.  Transition BSSes
    (psk-sae, eap-eap2, owe with owe_transition set) produce no
    bits even under 'on' because they are by definition still in
    transition.

  * 'off' unconditionally suppresses the element regardless of any
    other entries.  Operators who need to revert a WPA3-only SSID back
    to a transition mode can set this proactively, giving compliant
    STAs time to forget the permanent bit before the mode change.

Leave the list unset by default.  Advertising Transition Disable is a
one-way door -- once a compliant STA has seen the permanent bit for an
SSID it will refuse to associate to a transition-mode BSS of the same
name ever again -- so it must be opted in to per SSID, never flipped
on by a firmware bump.  This also matches the WPA3 and Wi-Fi Enhanced
Open Deployment and Implementation Guide v1.1 Table 4 requirement that
Transition Disable be MAND disabled by default on APs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Link: https://github.com/openwrt/openwrt/pull/23009
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-05-02 20:34:22 +02:00
..
firewall firewall: change synflood_protect option name 2026-01-24 21:33:15 +01:00
firewall4 firewall4: prefer over firewall as dependency 2026-03-10 00:47:21 +01:00
gre gre: use alternative way to check if kernel support is enabled 2021-03-13 20:58:55 +01:00
ipip ipip: add 'nohostroute' option 2022-01-19 20:57:59 +01:00
ltq-adsl-app treewide: remove lantiq dot com URL 2026-01-02 18:07:02 +01:00
ltq-vdsl-vr9-app treewide: remove lantiq dot com URL 2026-01-02 18:07:02 +01:00
ltq-vdsl-vr11-app treewide: remove lantiq dot com URL 2026-01-02 18:07:02 +01:00
netifd netifd: update to Git HEAD (2026-04-23) 2026-04-28 01:38:08 +01:00
qos-scripts treewide: replace AUTORELEASE with real PKG_RELEASE 2023-05-18 11:35:29 +02:00
qosify package: use service_running instead of service_started for ubus config 2025-03-13 11:23:03 +01:00
soloscli treewide: switch to HTTPS URL 2026-01-02 18:07:02 +01:00
swconfig swconfig: fix memory leak when cli call swlib_get_attr() 2023-06-11 02:42:31 +02:00
vti vti: squash vtiv4 and vtiv6 packages into vti 2021-11-03 20:34:43 +01:00
vxlan vxlan: allow for dynamic source ip selection (FS#3426) 2020-12-31 11:53:21 +01:00
wifi-scripts wifi-scripts: ucode: advertise Transition Disable on WPA3-only BSSes 2026-05-02 20:34:22 +02:00
xfrm xfrm: remove requirement for underlying device 2024-08-19 18:49:49 +02:00