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.
// 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
// 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
# 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.

