Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2025-52464

CVE-2025-52464: Meshtastic Firmware Info Disclosure Flaw

CVE-2025-52464 is an information disclosure vulnerability in Meshtastic Firmware caused by duplicated keys and low-entropy key generation. This post covers technical details, affected versions, impact, and mitigation.

Updated:

CVE-2025-52464 Overview

Meshtastic is an open source mesh networking solution used for off-grid communications over LoRa radio. A cryptographic weakness in the Meshtastic firmware allows attackers to decrypt Direct Messages sent between affected devices. The flashing procedures used by several hardware vendors produced duplicated public/private key pairs across devices. The firmware also failed to properly initialize the internal randomness pool on some platforms, producing low-entropy keys [CWE-331]. Affected versions span 2.5.0 up to but not including 2.6.11. The issue is patched in version 2.6.11, with version 2.6.12 automatically wiping known compromised keys when detected.

Critical Impact

Attackers who compile lists of duplicated or low-entropy keys can intercept and decrypt Direct Messages exchanged between affected Meshtastic nodes, breaking the confidentiality guarantee of the PKI encryption layer.

Affected Products

  • Meshtastic Firmware versions 2.5.0 through 2.6.10
  • Devices flashed by vendors using shared or pre-generated key material
  • Platforms with improperly initialized randomness pools

Discovery Timeline

  • 2025-06-19 - CVE CVE-2025-52464 published to NVD
  • 2025-10-09 - Last updated in NVD database

Technical Details for CVE-2025-52464

Vulnerability Analysis

The vulnerability stems from two distinct cryptographic failures in the Meshtastic firmware key generation process. First, several hardware vendors flashed devices using procedures that produced identical Curve25519 keypairs across multiple units. Second, the firmware generated keys before the underlying random number generator (RNG) entropy pool had sufficient entropy, particularly on platforms where hardware randomness sources were not yet initialized at boot. Direct Messages use these keys for end-to-end encryption via the PKI layer. When key material is shared or predictable, an attacker maintaining a database of compromised keys can identify affected nodes and decrypt captured ciphertext. Because Meshtastic operates over LoRa, message capture requires only a radio within range of either communicating node.

Root Cause

The root cause is insufficient entropy during cryptographic key generation [CWE-331]. The firmware invoked Curve25519 key generation during initial boot before LoRa region configuration occurred and before the RNG pool was properly seeded. Vendor-side flashing further amplified the issue by cloning the same generated keys onto multiple devices.

Attack Vector

An attacker within radio range captures encrypted Direct Message traffic. Using a precomputed list of compromised or duplicated keypairs derived from analyzing affected firmware builds and vendor flashing batches, the attacker matches the target node's advertised public key to a known private key and decrypts the messages.

cpp
// Patch: Generate keys only after LoRa region is set (commit 55b2bbf9)
#if !(MESHTASTIC_EXCLUDE_PKI_KEYGEN || MESHTASTIC_EXCLUDE_PKI)

-    if (!owner.is_licensed) {
+    if (!owner.is_licensed && config.lora.region != meshtastic_Config_LoRaConfig_RegionCode_UNSET) {
        bool keygenSuccess = false;
        if (config.security.private_key.size == 32) {
            if (crypto->regeneratePublicKey(config.security.public_key.bytes,
                                            config.security.private_key.bytes)) {
// Source: github.com/meshtastic/firmware/commit/55b2bbf93756fc7bbbfdbc7cbf29f88e6b637f22
cpp
// Patch: Warn user when a remote node advertises our public key (commit e5f68044)
// Indicates either key duplication or low-entropy generation
if (owner.public_key.size == 32 &&
    memcmp(p.public_key.bytes, owner.public_key.bytes, 32) == 0 &&
    !duplicateWarned) {
    duplicateWarned = true;
    char warning[] = "Remote device %s has advertised your public key. "
                     "This may indicate a low-entropy key. You may need "
                     "to regenerate your public keys.";
    LOG_WARN(warning, p.long_name);
}
// Source: github.com/meshtastic/firmware/commit/e5f6804421ac4b76dd31980250a505dba24c2aa6

Detection Methods for CVE-2025-52464

Indicators of Compromise

  • Log entries containing the LOW_ENTROPY_WARNING string emitted by patched firmware
  • Client notifications at meshtastic_LogRecord_Level_WARNING referencing low-entropy keys
  • Remote nodes advertising a public key identical to the local device's public key
  • Devices running firmware versions between 2.5.0 and 2.6.10 with vendor-flashed key material

Detection Strategies

  • Inventory all Meshtastic devices and capture their advertised public keys, then check for duplicates across the fleet
  • Upgrade to firmware 2.6.11 or later and monitor the device logs for the duplicate-key and low-entropy warnings introduced in the patch
  • Compare device public keys against community-maintained lists of known compromised vendor-flashed keys published in the Meshtastic security advisory

Monitoring Recommendations

  • Forward Meshtastic client notifications and serial logs to a centralized logging system for review
  • Alert on any occurrence of the duplicateWarned or low-entropy warning messages from patched firmware
  • Periodically audit node public keys reported on the mesh against your inventory of expected keys

How to Mitigate CVE-2025-52464

Immediate Actions Required

  • Upgrade all Meshtastic devices to firmware version 2.6.12, which automatically wipes known compromised keys on boot
  • Perform a complete device wipe on any device flashed by an affected vendor before generating new keys
  • Reconfigure the LoRa region after wiping to trigger fresh key generation with properly seeded entropy
  • Re-establish Direct Message trust by redistributing the new public keys to communicating peers

Patch Information

The fix is delivered across multiple commits in the Meshtastic firmware repository. Version 2.6.11 delays key generation until the LoRa region is set and adds user warnings for compromised keys. Version 2.6.12 extends the patch to automatically wipe known compromised keys when detected. See the GitHub Security Advisory GHSA-gq7v-jr8c-mfr7 and the relevant commits: 4bf2dd0, 55b2bbf9, e5f68044, and e623c70b.

Workarounds

  • Perform a complete device wipe to remove vendor-cloned keys before generating fresh keypairs
  • Avoid sending sensitive content via Direct Messages on unpatched devices until firmware is updated
  • Treat any Meshtastic Direct Message confidentiality as broken on devices that cannot be upgraded
bash
# After upgrading firmware, wipe device state and re-set the LoRa region
# to force fresh key generation with proper entropy
meshtastic --factory-reset
meshtastic --set lora.region US   # replace with your region
# Verify new public key differs from any known-compromised key list
meshtastic --info | grep -i public_key

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.