Skip to content

Yeraze/meshmonitor

v4.9.4 Security

This release includes 1 security fix for security teams reviewing exposed deployments.

Published 1mo Monitoring & Metrics
βœ“ No known CVEs patched
Read the diff β†’ Tool health β†’ What is this tool? β†’
This release patches 1 known CVE

Topics

meshcore meshtastic mqtt

Affected surfaces

auth rbac

ReleasePort's take

Light signal
editorial:auto 1mo

MeshMonitor v4.9.4 introduces local‑node impersonation detection and several UI/feature enhancements while addressing multiple token resolution bugs.

Why it matters: Adds security‑focused detection of spoofed packets; fixes critical token mismatches affecting automation and node counts, improving reliability for developers and SREs.

Summary

AI summary

Updates Bug Fixes, πŸš€ MeshMonitor v4.9.4, and recommended across a mixed release.

Changes in this release

Security Medium

Enforces `viewOnMap` and private‑position permissions on the Map Analysis positions endpoint.

Enforces `viewOnMap` and private‑position permissions on the Map Analysis positions endpoint.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

β€”
Feature Medium

Adds local-node impersonation detection flagging spoofed packets.

Adds local-node impersonation detection flagging spoofed packets.

Source: llm_adapter@2026-06-09

Confidence: high

β€”
Feature Medium

Adds full-height layout to Channels tab with compact controls bar.

Adds full-height layout to Channels tab with compact controls bar.

Source: llm_adapter@2026-06-09

Confidence: high

β€”
Feature Medium

Adds JSONL export for MeshCore packet monitor log.

Adds JSONL export for MeshCore packet monitor log.

Source: llm_adapter@2026-06-09

Confidence: high

β€”
Feature Medium

Adds {DATE} and {TIME} tokens for Auto Announce automation.

Adds {DATE} and {TIME} tokens for Auto Announce automation.

Source: llm_adapter@2026-06-09

Confidence: high

β€”
Feature Medium

Shows contributing infrastructure nodes in airtime cutoff readout.

Shows contributing infrastructure nodes in airtime cutoff readout.

Source: llm_adapter@2026-06-09

Confidence: high

β€”
Feature Medium

Adds system appearance theme selection option.

Adds system appearance theme selection option.

Source: llm_adapter@2026-06-09

Confidence: high

β€”
Bugfix Medium

Fixes auto‑ack token resolution for {LONG_NAME} and {SHORT_NAME}.

Fixes auto‑ack token resolution for {LONG_NAME} and {SHORT_NAME}.

Source: llm_adapter@2026-06-09

Confidence: high

β€”
Bugfix Medium

Fixes disagreement between {NODECOUNT}/{DIRECTCOUNT} tokens and UI badge.

Fixes disagreement between {NODECOUNT}/{DIRECTCOUNT} tokens and UI badge.

Source: llm_adapter@2026-06-09

Confidence: high

β€”
Bugfix Medium

Fixes dashboard map ignoring Map Pin Style setting.

Fixes dashboard map ignoring Map Pin Style setting.

Source: llm_adapter@2026-06-09

Confidence: high

β€”
Bugfix Medium

Fixes telemetry chart distortion caused by nodes with bad clocks.

Fixes telemetry chart distortion caused by nodes with bad clocks.

Source: llm_adapter@2026-06-09

Confidence: low

β€”
Bugfix Low

Sanitizes future‑dated timestamps to prevent telemetry chart distortion from bad clocks.

Sanitizes future‑dated timestamps to prevent telemetry chart distortion from bad clocks.

Source: granite4.1:30b@2026-06-09-audit

Confidence: low

β€”
Full changelog

MeshMonitor v4.9.4

This release headlines local-node impersonation detection (#2584): MeshMonitor now flags packets and messages that spoof your own connected node's identity β€” claiming to be "you" but arriving over RF β€” instead of silently rendering them as your outgoing messages. The Channels tab got a full-height chat layout with a single compact controls bar (and a "β‹―" overflow menu on mobile), and the MeshCore Packet Monitor can now export its log as JSONL. Automation gained {DATE}/{TIME} tokens for Auto Announce and a clearer airtime-cutoff readout that lists the infrastructure nodes driving the decision, plus a system appearance theme option. On the fix side: auto-ack {LONG_NAME}/{SHORT_NAME} and {NODECOUNT}/{DIRECTCOUNT} tokens now resolve correctly and agree with the UI, telemetry charts no longer distort from nodes with bad clocks, the dashboard map honors the Map Pin Style setting, MeshCore shows "Connecting…" while status loads, and a Map Analysis security gate now enforces viewOnMap/private-position permissions on the positions endpoint. Rounded out by 11 dependency updates.

Features

  • Local-node impersonation detection (#2584, #3390) β€” heuristic detection of packets/messages spoofing your locally-connected node (RF-reception markers + packet-id echo suppression, per-source); flagged with a ⚠️ badge in the channel view and Packet Monitor.
  • Full-height Channels tab layout (#3385, #3387) β€” single compact controls bar and a message pane that fills the viewport; mobile collapses the controls into a "β‹―" overflow menu.
  • Export MeshCore packet monitor log as JSONL (#3391, #3394).
  • {DATE} and {TIME} tokens for Auto Announce (#3382, #3383).
  • Airtime cutoff: contributing infrastructure nodes (#3392) β€” shows the 3 nodes whose ChUtil was averaged, and trims the percentage to 2 decimals.
  • System appearance theme selection (#3344).

Bug Fixes

  • Auto-ack {LONG_NAME}/{SHORT_NAME} resolved as Unknown/???? (#3384, #3386) β€” the sender lookup is now scoped to the correct source.
  • {NODECOUNT}/{DIRECTCOUNT} disagreed with the Sources "active" badge (#3388, #3389) β€” tokens now use the same 2-hour active-node window.
  • Telemetry charts distorted by nodes with bad hardware clocks (#3362, #3363) β€” future-dated timestamps are sanitized at ingest.
  • Dashboard map ignored Map Pin Style (#3364, #3381).
  • MeshCore showed "Disconnected" while status was still loading (#3380) β€” now shows "Connecting…" (#3379).

Security

  • Map Analysis positions endpoint now enforces channel viewOnMap and private-position gates (#3365, #3366) β€” closes a path that could expose GPS history to users lacking the required permissions.

Dependencies

  • Bump react-router-dom 7.16.0 β†’ 7.17.0 (#3378), @tanstack/react-query 5.100.14 β†’ 5.101.0 (#3377), protobufjs 8.4.2 β†’ 8.6.1 (#3376), react-query-devtools (#3375), morgan 1.10.1 β†’ 1.11.0 (#3374), i18next 26.2.0 β†’ 26.3.1 (#3373), lucide-react 1.16.0 β†’ 1.17.0 (#3372), @tanstack/react-virtual 3.13.26 β†’ 3.14.2 (#3371), the production-dependencies group (9 updates, #3370), @types/node (#3368), and codecov-action 6 β†’ 7 (#3367).

Issues Resolved

#2584, #3385, #3384, #3382, #3388, #3362, #3364, #3365, #3379, #3391

Full changelog: https://github.com/Yeraze/meshmonitor/compare/v4.9.3...v4.9.4

πŸš€ MeshMonitor v4.9.4

πŸ“¦ Installation

Docker (recommended):

docker run -d \
  --name meshmonitor \
  -p 8080:3001 \
  -v meshmonitor-data:/data \
  ghcr.io/Yeraze/meshmonitor:4.9.4

πŸ§ͺ Testing

βœ… All tests passed
βœ… TypeScript checks passed
βœ… Docker images built for linux/amd64, linux/arm64, linux/arm/v7

πŸ“‹ Changes

See commit history for detailed changes.

Security Fixes

  • Map Analysis positions endpoint enforces `viewOnMap` and private‑position gates, closing a GPS history exposure path (#3365, #3366)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Yeraze/meshmonitor

Get notified when new releases ship.

Sign up free

About Yeraze/meshmonitor

All releases β†’

Related context

Earlier breaking changes

  • v4.13.0 Source‑scoped API endpoints now require an explicit `sourceId` parameter.
  • v4.13.0 Auto-Upgrade is retired; remove upgrade sidecar and related config.
  • v4.7.2 Route `destination` field now rejects non‑8‑hex nodeId or 64‑hex publicKey, returning HTTPβ€―400.

Beta — feedback welcome: [email protected]