Skip to main content

Meshtastic CVE-2026-42566

HIGH
Improper Input Validation (CWE-20)
2026-07-19 GitHub_M
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Node advertises malformed UTF-8 long_name
  2. Delivery
    Name gossips across LoRa mesh
  3. Exploit
    Poisoned entry stored in victim NodeDB
  4. Execution
    iOS app rejects unparseable database
  5. Persist
    BLE sync enters fail/retry loop
  6. Impact
    Operator 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 8.6 HIGH

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).

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:H

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Medium
popular open-source LoRa mesh firmware, sizable hobbyist and field-deployment community
Social Media
8
Sightings
Data Quality
6 sources
Confidence: High
NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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

cpe:2.3:a:meshtastic:firmware:*:*:*:*:*:*:*:*

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

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

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy