Skip to content

[BUG] CLI parser allows invalid arguments in region commands, causing remote admin lockout #3117

Description

@kimbucci3-byte

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions