Hi MeshCore Team,
I am writing to report a critical issue regarding the CLI input validation for region/scope commands (region put and region allowf) that can lead to a permanent remote administration lockout (OTA) of isolated repeater nodes.
The Problem / Root Cause:
Currently, the CLI parser does not strictly validate the number of arguments or the character set when configuring regions. If a user inputs a command with mixed arguments and special characters—for example: region allowf * US (or region put * US )Instead of returning a syntax error (Err - Syntax), the firmware processes the input.
Depending on the parser state, it can treat the space and the trailing text as a single malformed string literal or store a corrupted parent-child hierarchy in the flash memory (e.g., storing the region literally as * US).The Dangerous Consequences: Asymmetric Network Behavior (Ghost Node): The node continues to broadcast telemetry beacons at a low level, which global servers like Corescope parse partially (showing the clean #US suffix). It even continues to act as a physical layer repeater (actively relaying and responding to Traces). Cryptographic Mismatch: Because the internal region string is corrupted with spaces and wildcards (*), the node derives an incorrect channel encryption key (hash). Remote Admin Lockout: The companion app strictly enforces alphanumeric validation, preventing users from typing spaces or special characters like * into the region field. As a result, it is mathematically impossible for an administrator to match the corrupted channel key from the app, requiring an expensive and time-consuming physical intervention to connect via USB serial cable.
Suggested Fixes: CLI Side: Implement strict argument counting and character validation for all region sub-commands. If a string contains unexpected spaces or wildcards where a single region name is expected, the terminal should reject it with a syntax error.
App Side: Provide an emergency fallback or temporary "raw input" mode in the companion app's region field to allow special characters in case a node needs to be recovered remotely after an input typo. Thank you for your incredible work on MeshCore!
ALEX
Hi MeshCore Team,
I am writing to report a critical issue regarding the CLI input validation for region/scope commands (region put and region allowf) that can lead to a permanent remote administration lockout (OTA) of isolated repeater nodes.
The Problem / Root Cause:
Currently, the CLI parser does not strictly validate the number of arguments or the character set when configuring regions. If a user inputs a command with mixed arguments and special characters—for example: region allowf * US (or region put * US )Instead of returning a syntax error (Err - Syntax), the firmware processes the input.
Depending on the parser state, it can treat the space and the trailing text as a single malformed string literal or store a corrupted parent-child hierarchy in the flash memory (e.g., storing the region literally as * US).The Dangerous Consequences: Asymmetric Network Behavior (Ghost Node): The node continues to broadcast telemetry beacons at a low level, which global servers like Corescope parse partially (showing the clean #US suffix). It even continues to act as a physical layer repeater (actively relaying and responding to Traces). Cryptographic Mismatch: Because the internal region string is corrupted with spaces and wildcards (*), the node derives an incorrect channel encryption key (hash). Remote Admin Lockout: The companion app strictly enforces alphanumeric validation, preventing users from typing spaces or special characters like * into the region field. As a result, it is mathematically impossible for an administrator to match the corrupted channel key from the app, requiring an expensive and time-consuming physical intervention to connect via USB serial cable.
Suggested Fixes: CLI Side: Implement strict argument counting and character validation for all region sub-commands. If a string contains unexpected spaces or wildcards where a single region name is expected, the terminal should reject it with a syntax error.
App Side: Provide an emergency fallback or temporary "raw input" mode in the companion app's region field to allow special characters in case a node needs to be recovered remotely after an input typo. Thank you for your incredible work on MeshCore!
ALEX