Meshtastic
CVE-2026-42566
HIGH
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Malformed name propagates over the mesh (AV:N, AC:L, PR:N, UI:N) and the firmware-stored data disrupts a separate component, the iOS app (S:C); impact is availability-only (A:H, C:N/I:N).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
3DescriptionCVE.org
Meshtastic is an open source mesh networking solution. Prior to version 2.7.23.b246bcd, a single node advertising a User.long_name that contains a malformed character encoding can render other radios unusable over BLE when managed through the iOS app. The malformed name does not need to be maliciously crafted - it can arise from ordinary buffer truncation and has been observed occurring naturally in the wild. At least one code path could place a null terminator in the middle of a multibyte sequence, leaving a malformed User.long_name in the node database. The problem surfaced downstream: the iOS app enforced encoding validation and therefore cannot parse a node database once it contains a poisoned entry. This caused BLE sync to enter a fail/retry loop, resulting in loss of control over the affected device. For a typical user managing their radio with the iOS app, the device becomes effectively unusable until the poisoned node ages out of the on-device database, or unless they have an alternate management path (e.g., the Python CLI, which can be used to identify and remove the offending entries manually). Because the malformed name propagates through the mesh, the temporary presence of a single affected node can degrade BLE management for iOS users across a wide geographical area for an extended period. Less technical users have no straightforward recovery path. Starting in version 2.7.23.b246bcd, the firmware has added input sanitization and regression tests demonstrating recovery for already-poisoned devices. The apps have also taken steps to ensure more graceful handling of malformed encoding sequences as well.
AnalysisAI
Denial of service in Meshtastic firmware prior to 2.7.23.b246bcd allows a single node whose User.long_name contains malformed UTF-8 to render other radios unmanageable over Bluetooth Low Energy when paired with the iOS app. Because the strict-parsing iOS client refuses to load a node database containing a poisoned entry, BLE sync enters a fail/retry loop and the operator loses control of the device; the malformed name propagates across the mesh, so one bad node can degrade iOS management for many users over a wide area. There is no public exploit identified at time of analysis, but the condition has been observed occurring naturally in the wild from ordinary buffer truncation rather than deliberate attack.
Technical ContextAI
Meshtastic is an open-source LoRa mesh networking firmware (CPE cpe:2.3:a:meshtastic:firmware) where each node advertises identity fields such as User.long_name and User.short_name, which are gossiped across the mesh and stored in every node's on-device NodeDB. The root cause is CWE-20 Improper Input Validation: a firmware code path could place a NUL terminator in the middle of a multibyte UTF-8 sequence (buffer truncation of a fixed-size char field), producing a structurally invalid string. The iOS app enforces strict UTF-8 validation on the received protobuf node database, so a single invalid byte sequence makes the entire database unparseable. The upstream fix (commit 2cc13a1132d9) enables nanopb's PB_VALIDATE_UTF8 and adds a new sanitizeUtf8() routine in meshUtils.cpp that walks the buffer, validates lead/continuation bytes, rejects overlong encodings and surrogate halves, and replaces invalid bytes with '?'; it is invoked in TypeConversions (ConvertToUser/ConvertToUserLite) and AdminModule (handleSetOwner/handleSetHamMode).
RemediationAI
Vendor-released patch: upgrade Meshtastic firmware to version 2.7.23.b246bcd or later, which adds UTF-8 input sanitization (sanitizeUtf8) plus the PB_VALIDATE_UTF8 build flag and includes regression tests that demonstrate recovery of already-poisoned devices; see GHSA-7ph5-2mjv-69h8 and commit 2cc13a1132d9. For a device already poisoned and locked out of the iOS app, use an alternate management path such as the Python CLI to identify and manually remove the offending node entry from the NodeDB, or wait for the poisoned node to age out of the on-device database (both are recovery workarounds, not preventive fixes). As an interim measure until firmware is updated, managing the radio via a non-iOS client (Android app, web client, or Python CLI) avoids the strict iOS parser and preserves control, at the cost of not using the preferred iOS workflow. Note that because malformed names propagate across the mesh, patching only your own node does not prevent a neighboring unpatched node from reintroducing a poisoned entry, so fleet-wide firmware updates are advisable.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Same weakness CWE-20 – Improper Input Validation
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today