James Rich 727592dc80 Enforce is_managed on lockdown builds until lockdown is active
The only local-admin is_managed refusal sat inside
#ifndef MESHTASTIC_PHONEAPI_ACCESS_CONTROL, so it was compiled out of every
build with -DMESHTASTIC_ENABLE_LOCKDOWN=1. The comment justifying that says
lockdown's per-connection gate covers it, but that gate only applies once
lockdown is ACTIVE: PhoneAPI::handleToRadioPacket drops unauthorized local
admin only while isLockdownActive(), and getAdminAuthorized() returns true
for every connection when it is not.

So a lockdown-capable build that has never been provisioned accepted local
admin from any client regardless of security.is_managed, silently. Confirmed
on a RAK4631: with is_managed set and an admin key present, a local set_owner
over USB serial was accepted and the owner changed. SECURITY.md already
promises local config changes are "subject to managed mode".

Gate on isLockdownActive() instead of the build flag, so the passphrase gate
supersedes is_managed only once it is actually in force. A blanket removal of
the #ifndef would also refuse local admin after a successful passphrase
unlock, which is not the intent. Behaviour on stock builds is unchanged.

Adds a paired test: local admin is refused with is_managed set, and applied
without it. Both pass (test_admin_radio, 119/119 green), and the refusal test
fails as expected when the gate is bypassed.
2026-09-15 06:45:26 -05:00
2021-10-09 17:15:12 +11:00
2026-09-01 18:00:06 -04:00
2024-09-24 15:24:08 -05:00
2026-09-14 07:27:39 +00:00
2026-07-01 19:01:27 -05:00
2026-01-29 10:06:58 -06:00
2024-11-28 06:26:51 -06:00
2024-09-04 15:33:28 -07:00
2026-07-28 11:09:40 +00:00
2026-01-29 10:06:58 -06:00
2026-01-29 10:06:58 -06:00
2026-07-01 19:01:27 -05:00
2025-01-13 12:24:05 +08:00
2026-01-29 10:06:58 -06:00

Meshtastic Logo

Meshtastic Firmware

GitHub release downloads CI CLA assistant Fiscal Contributors Vercel

meshtastic%2Ffirmware | Trendshift

Overview

This repository contains the official device firmware for Meshtastic, an open-source LoRa mesh networking project designed for long-range, low-power communication without relying on internet or cellular infrastructure. The firmware supports various hardware platforms, including ESP32, nRF52, RP2040/RP2350, and Linux-based devices.

Meshtastic enables text messaging, location sharing, and telemetry over a decentralized mesh network, making it ideal for outdoor adventures, emergency preparedness, and remote operations.

Get Started

Join our community and help improve Meshtastic! 🚀

Stats

Alt

S
Description
No description provided
Readme GPL-3.0
324 MiB
0 Stars 1 Watchers 0 Forks
Languages
C++ 72.7%
C 23.1%
Python 2.1%
Shell 1.5%
Batchfile 0.2%
Other 0.2%