Commit Graph
130 Commits
Author SHA1 Message Date
c4ch3c4d3 f9eccd8030 docs: spec for deauth UX, evil portal tab, monitor capture fixes 2026-08-23 19:30:13 -06:00
c4ch3c4d3 ed50cd7b5a fix(enterprise,deauth,filters): PineAP validation round fixes, live-verified on Pager 24.10.1
- deauth/kick: use full PINEAPPLE_DEAUTH_CLIENT hak5cmd app name (BUG 1)
- _allow_all_ssids: PINEAPPLE_NETWORK_FILTER_MODE deny so karma lets
  clients associate after deploy (BUG 2)
- enterprise inner EAP (BUG 3), two root causes found by live experiment:
  - hostapd never wildcard-matches a bare `*` identity for phase-2
    lookups; eap_users now uses quoted empty prefix `""* ... [2]`,
    which prefix-matches any inner identity
  - pineape_auth_pass=1 forwards inner EAP to pineapd, which has no
    standalone responder; deploy forces 0 and stop restores 1
  Residual: plaintext MSCHAPv2 capture is firmware-blocked on 24.10.1
  (MSG_DEBUG compiled out of the karma wpad; `-f` silently ignored);
  documented in code comments and the validation report.
- ISSUE 4: point pineapd.@hostapd[0].mgmtiface at wlan1wpa during 5 GHz
  WPA deploys so handshakes/loot populate; cleared on stop
- ISSUE 5: radio0 set_ap path polls 90 s across the wifi-reload window
  and retries set_ap once if the iface still has not appeared
- ISSUE 6: skills docs use `llc && eth.type == 0x888e` (firmware tcpdump
  matches 0 frames on `eapol`)
- ISSUE 7: capture state helper detects dead-pid / iface-down, cleans up,
  status reports {running:false, stale:true} instead of zombie running
- tests: fix global os.path monkeypatch leaks between test modules that
  broke test_mk8_events/test_reliability_api under discovery; add
  regression coverage for all fixes above (463 tests green)

Live validation evidence and newly discovered firmware quirks
(DEVICE_FILTER_DELETE no-op, dropbear rate limiting) recorded in
docs/validation/2026-08-23-pineap-validation-report.md.
2026-08-23 18:29:47 -06:00
bzuccaro a04319dfc8 feat(webui,recon): drop PineAP mode card, sort recon report APs by signal
- Remove the Passive/Active/Advanced mode card from the PineAP dashboard
  and move the RF Role (radio1) card into its slot, along with the now
  dead mode state machinery and mode-card-only CSS.
- Sort recon HTML report access points by signal strength (strongest first).
2026-08-23 09:29:10 -06:00
bzuccaro e316450271 docs: spec for PineAP dashboard mode-card removal 2026-08-23 09:20:19 -06:00
bzuccaro 2ef07a28fc feat(reliability): PSK uplink security-mode fallback chain (sae-mixed/sae/psk2 with PMF) 2026-08-23 08:19:20 -06:00
bzuccaro 501fa455ce fix(reliability): resolve STA netdev by phy membership (netifd ignores ifname); sae-mixed for PSK uplinks 2026-08-22 20:37:11 -06:00
bzuccaro 132cf4d77a fix(reliability): explicit hop baseline restore, immune to stale pager snapshot 2026-08-22 19:37:57 -06:00
bzuccaro 712d381093 fix(reliability): supervisor restores hop baseline unless a role holds the pause 2026-08-22 19:31:15 -06:00
bzuccaro 107cf17611 fix(ui): sync role select to live role; mark RF chip unavailable on poll failure 2026-08-22 19:26:39 -06:00
bzuccaro a1b449c9be fix(deploy): busybox ash lacks SECONDS; use date +%s for health deadline 2026-08-22 19:23:51 -06:00
bzuccaro 6b84665347 fix(deploy): no dangling symlink on first-deploy failure, deadline-capped health poll, release pruning, honest commit rc 2026-08-22 19:18:42 -06:00
bzuccaro 92a2a6d8ee docs: field runbook — checklists, engagement flow, recovery procedures 2026-08-22 19:11:04 -06:00
bzuccaro 55d4beb9d4 fix(reliability): probe section existence via uci show, not an option key 2026-08-22 18:59:57 -06:00
bzuccaro 1133068a09 fix(reliability): recreate missing pineapd section; honest uci-set reporting 2026-08-22 18:45:44 -06:00
bzuccaro 23ca901e82 feat(reliability): supervisor continuously enforces known-good UCI set 2026-08-22 18:37:22 -06:00
bzuccaro b9a64c6560 fix(reliability): supervisor re-parks stock-resurrected dummy STA on interval 2026-08-22 18:31:06 -06:00
bzuccaro 5625310977 fix(reliability): converge runtime after profile restore (park dummy STA, re-raise monitors) 2026-08-22 18:26:21 -06:00
bzuccaro 61c929d891 docs: reliability core subsystem guide (v1.4.0) 2026-08-22 18:17:27 -06:00
bzuccaro 60db235f0b fix(reliability): converge runtime on uplink revert; bound health endpoint cost (I3,I4) 2026-08-22 16:52:29 -06:00
bzuccaro b25c98b7c7 fix(reliability): hop governance belongs to rfplan, not boot reconciler (I2) 2026-08-22 16:51:52 -06:00
bzuccaro ba3e1b1ae0 fix(reliability): clear boot marker on graceful shutdown (I1) 2026-08-22 16:51:33 -06:00
bzuccaro 027646c905 fix(reliability): pool size counts any whitespace; deploy ZIP var remote-expands 2026-08-22 16:23:50 -06:00
bzuccaro eae47d99bf fix(reliability): encode str stdin in device_run; smoke drill path fixes + regression tests 2026-08-22 16:23:50 -06:00
bzuccaro d954b6e90d fix(smoke): conditional role drill, healthy-gate for drills, exit reaping 2026-08-22 16:01:32 -06:00
bzuccaro 25bae3b4a2 test(smoke): on-device reliability suite 2026-08-22 15:51:05 -06:00
bzuccaro 63528ff794 fix(deploy): unauth health poll, validate-before-gate, fullmatch names, reload-only-on-ok 2026-08-22 15:41:37 -06:00
bzuccaro 1bb15de258 feat(deploy): reliability API routes, atomic releases, version single-source 2026-08-22 15:20:39 -06:00
bzuccaro aba08e36c7 fix(ui): guard chip shows pending count, not raw list 2026-08-22 15:03:15 -06:00
bzuccaro 4c1144ab32 feat(ui): reliability panel events/counters, RF plan chip and controls 2026-08-22 14:55:49 -06:00
bzuccaro bace45d6e4 fix(reliability): rfplan review fixes — cli commit, assoc poll, ensure_attack wiring, idle reload 2026-08-22 14:35:12 -06:00
bzuccaro 15cd3c5eb8 feat(reliability): phy1 RF role manager with uplink-on-radio1 2026-08-22 14:20:05 -06:00
bzuccaro 78aab64af0 fix(reliability): watchdog max lifetime + serialized gate entry (review fixes) 2026-08-22 14:08:25 -06:00
bzuccaro a008bb9167 feat(reliability): risky-op preflight snapshots + detached rollback watchdog 2026-08-22 13:56:25 -06:00
bzuccaro 7a27218149 feat(reliability): supervisor sampling, event feed, boot marker 2026-08-22 13:41:49 -06:00
bzuccaro e329fd2a1c docs(plan): watchdog probe uses monitor presence, not stock-disabled wlan0mgmt 2026-08-22 13:27:33 -06:00
bzuccaro 7d1eb62d75 feat(reliability): START=49 boot guard installed by deploy 2026-08-22 13:26:09 -06:00
bzuccaro a05754f908 feat(reliability): boot-time UCI reconciler 2026-08-22 13:12:14 -06:00
bzuccaro 88e6471820 feat(reliability): UCI profile snapshot store 2026-08-22 13:00:59 -06:00
bzuccaro 1d17704f72 fix(reliability): journal fail-safe serialization, per-line parse, review hardening 2026-08-22 12:51:22 -06:00
bzuccaro 496f7c58e3 feat(reliability): JSONL event journal with rotation and counters 2026-08-22 12:39:19 -06:00
bzuccaro 2c24107f42 docs: plan — reliability core implementation 2026-08-22 11:59:16 -06:00
bzuccaro 4b03ecb1fd docs: spec — reliability core + integrated supervisor 2026-08-22 09:52:25 -06:00
bzuccaro 86d26d8457 fix: show BSSID and sources in recon association tooltip 2026-08-21 08:46:19 -05:00
bzuccaro 883a839692 test: cover recon identity associations 2026-08-21 08:41:17 -05:00
bzuccaro cd54402892 feat: show recon client identities and associations 2026-08-21 08:40:25 -05:00
bzuccaro 21e308386f feat: include recon identity in exports 2026-08-21 08:31:47 -05:00
bzuccaro a67faecee9 feat: associate recon clients with confirmed networks 2026-08-21 08:26:58 -05:00
bzuccaro 2c9fa8d137 fix: use live macchanger OUI path 2026-08-21 08:20:09 -05:00
bzuccaro 797db1816a feat: resolve recon device manufacturers locally 2026-08-21 08:15:21 -05:00
bzuccaro d149cb13fd docs: plan recon identity enrichment 2026-08-21 08:10:03 -05:00