Skip to content

The net zone's supplicant takes no DPP frames, which any radio in range could send it unassociated - #325

Merged
DevomB merged 1 commit into
mainfrom
wifi-no-dpp
Oct 13, 2026
Merged

DevomB merged 1 commit into
mainfrom
wifi-no-dpp

Conversation

@DevomB

@DevomB DevomB commented Oct 9, 2026

Copy link
Copy Markdown
Owner

What was wrong

build/recipes/wpa-supplicant.sh built the net zone's wpa_supplicant with CONFIG_DPP=y. Built that way, the station registers with the kernel for DPP's public action frames, and for GAS's initial and comeback frames, at start (nl80211_mgmt_subscribe_non_ap in hostap 2.12's src/drivers/driver_nl80211.c).

When a DPP frame arrives, wpas_dpp_rx_action (wpa_supplicant/dpp_supplicant.c) parses its attributes with dpp_check_attrs and dispatches on its type. Only after that does it find that no provisioning is under way. Any radio in range can send those frames to the net zone's address without associating.

Nothing in Kryptik provisions networks by DPP: kryptik wifi add takes an SSID and a passphrase.

What changed

  • Recipe: builds without DPP, with a line saying why. SAE, OWE, 802.11r and the AP mode the zones suite's access point uses all stay.
  • docs/design/net-zone.md: the wireless uplinks list says the supplicant takes no provisioning frames.
  • docs/design/net-zone-surface.md: its line references into the recipe follow the change.

How the run proves it

The zones suite has a new wifi-no-dpp check. It passes when /usr/sbin/wpa_supplicant contains none of DPP's control command strings (DPP_BOOTSTRAP_GEN, DPP_LISTEN). A DPP build always contains them, so the check fails on the old image.

The existing checks show that Wi-Fi still works the same way: wifi-ap (the suite's access point is this binary in AP mode), wifi-associated, wifi-lease, wifi-egress and radio-recarried.

This is a recipe change, so the Distro run rebuilds the supplicant's step.

…ge could send it unassociated

wpa_supplicant was built with CONFIG_DPP. Built so, a station registers for
DPP's public action frames and for GAS's (driver_nl80211.c,
nl80211_mgmt_subscribe_non_ap), and wpas_dpp_rx_action parses every DPP
frame's attributes before it finds no provisioning under way. Any radio in
range can send those frames to the net zone's address unassociated, and
nothing in Kryptik provisions networks by DPP: kryptik wifi add takes an SSID
and a passphrase.

The recipe now builds without DPP. The zones suite checks that the image's
supplicant carries none of DPP's control commands, which a DPP build holds.
@DevomB
DevomB marked this pull request as ready for review October 12, 2026 02:52
@DevomB
DevomB merged commit 88fcfb4 into main Oct 13, 2026
21 checks passed
@DevomB
DevomB deleted the wifi-no-dpp branch October 13, 2026 15:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant