Meshtastic
CVE-2026-42566
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessNode advertises malformed UTF-8 long_name
-
DeliveryName gossips across LoRa mesh
-
ExploitPoisoned entry stored in victim NodeDB
-
ExecutioniOS app rejects unparseable database
-
PersistBLE sync enters fail/retry loop
-
ImpactOperator loses control of radio
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Triggering requires (1) a node in the mesh whose User.long_name (or short_name) contains a malformed/truncated multibyte UTF-8 sequence, which can occur naturally via buffer truncation, and (2) a victim radio running firmware prior to 2.7.23.b246bcd that ingests that name into its NodeDB, AND (3) the victim managing that radio through the Meshtastic iOS app, which is the client that enforces strict UTF-8 validation and refuses to parse the poisoned database. Limiting factors: the disruptive effect is specific to the iOS management path - Android, web, and Python CLI clients handle the malformed data more gracefully and are not locked out, so non-iOS-managed devices are not rendered unusable; the impact is availability of management only, with no code execution or data exposure; and recovery is possible without a patch by manually removing the entry via CLI or letting it age out. |
| Impact | The CVSS 3.1 vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H (7.5, HIGH) is consistent with a pure availability impact: no confidentiality or integrity loss, but the affected device becomes effectively unmanageable via the iOS app. Notably the vulnerability is triggerable without malice - the description states poisoned names 'arise from ordinary buffer truncation and has been observed occurring naturally in the wild' - so the practical likelihood of encountering the condition is higher than typical for a bug requiring a crafted payload, even though this is NOT confirmed active adversarial exploitation and there is no CISA KEV listing, no EPSS score provided, and no POC. The SSVC-style read is: technical impact is limited to availability of management, exploitation is low-effort/automatable in the sense that any propagating node can cause it, but there is no code execution or data exposure. One data discrepancy to flag: the intelligence tag 'Information Disclosure' contradicts the CVSS vector (C:N I:N A:H) - this is an availability/DoS issue, not information disclosure, so the tag appears mislabeled and should not drive triage. Real priority is moderate: disruptive and self-spreading for iOS-managed fleets, but non-destructive and recoverable. |
| Exploit ScenarioDerived | A node on the mesh advertises a User.long_name in which a multibyte UTF-8 character has been truncated mid-sequence - from a normal name entry or buffer truncation, not necessarily malicious. The malformed name gossips across the LoRa mesh into the NodeDB of surrounding radios, and any user managing an affected radio with the Meshtastic iOS app finds BLE sync stuck in a fail/retry loop, losing control of the device until the entry is removed via the Python CLI or ages out. No public exploit code is required or identified, since ordinary truncation reproduces the condition. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 20, 2026
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.
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.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
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).
Know when Python gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
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
DescriptionCVE.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.
Executive ViewAI
A denial-of-service vulnerability in Meshtastic firmware versions prior to 2.7.23.b246bcd disables iOS-based device management network-wide when any mesh node carries a malformed user name; this condition has been observed occurring naturally in production deployments. Organizations operating Meshtastic networks lose iOS control interfaces with no vendor patch available, creating operational risk across distributed teams with potential cascading effects across the entire mesh.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) restrict iOS app pairings to a whitelist of pre-screened nodes to limit exposure surface; (2) implement node-level UTF-8 validation to prevent malformed entries from propagating into mesh databases; (3) maintain non-iOS management capabilities (CLI, web console, or desktop tools) as primary control interface during patch waiting period; (4) establish operator training to avoid special characters and non-ASCII input in node identity fields; (5) continuously monitor for and immediately isolate any node triggering repeated BLE sync failures in iOS clients.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Affected Products (CPE)CVE.org
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
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB