This release includes 1 security fix for security teams reviewing exposed deployments.
Topics
Affected surfaces
ReleasePort's take
Light signalMeshMonitor 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 summaryUpdates Bug Fixes, π MeshMonitor v4.9.4, and recommended across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| 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-
idecho 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 asUnknown/????(#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
viewOnMapand 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
About Yeraze/meshmonitor
All releases βRelated context
Related tools
Beta — feedback welcome: [email protected]