mirror of
https://github.com/mikecarper/MeshCore.git
synced 2026-10-29 07:02:23 +00:00
The Wi-Fi, LoRa first-stage and Partition Expander bridges serve an unauthenticated /update behind an AP whose password was fixed and published, so anyone in range during a migration could upload firmware while the private key is staged. Use the old node's saved admin password as the WPA2 passphrase, read from /com_prefs or /node_prefs at offset 56 as the firmware loads it. The operator already used that password to start the old updater. Fall back to the published password, with a serial warning, when the saved admin password is missing, unreadable, shorter than 8 characters or not printable ASCII, so no node becomes unreachable. The legacy filesystem is mounted without formatting and the password is never printed. Migration admission, flash sequencing, /update gating and the USB bridge are unchanged. Update both guides and the package README. Add a sanitizer-backed host test that compiles the bridge's actual Wi-Fi block against fake SPIFFS and WiFi: both boots, file precedence, WPA2 length and terminator bounds, printable characters, stock 1.10/1.11 file sizes, truncated fields, and mount, seek and partial-read failures. It fails 8 of 8 on the previous code and catches 27 of 27 code mutations. Verified 13 related host test files and the esp32_s3_4mb_partition_migrator build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>