Skip to content

Security: agessaman/meshcore-bot

SECURITY.md

Security Policy

Supported versions

Version Supported
1.0.x ✅ Security fixes
< 1.0 ❌ Please upgrade

Reporting a vulnerability

Please report security issues privately rather than opening a public issue.

Use GitHub's private vulnerability reporting: go to the Security tab of this repository and choose Report a vulnerability. The report is visible only to the maintainers — nothing is disclosed publicly until a fix is ready.

Please include:

  • A description of the issue and the impact you believe it has
  • The affected component and version (git describe --tags)
  • Steps to reproduce
  • Any relevant configuration, with keys and tokens redacted

What to expect: acknowledgement within 10 days and an assessment within 30 days, followed by coordinated disclosure once a fix is available. This is a volunteer-maintained project — there is no bug bounty, but reporters are credited in the changelog unless they would rather not be.

Scope

In scope:

  • Web viewer — authentication bypass, session handling, XSS, CSRF, CSP bypass, or any unauthenticated path to the radio-control endpoints.
  • Outbound HTTP — SSRF in feed fetching, webhooks, URL shortening, or weather and geocoding providers.
  • Inbound webhook service — authentication and input handling.
  • Credential handling — leakage of API keys, MQTT credentials, or bridge webhook URLs into logs, HTTP responses, or MQTT payloads.
  • Command authorization — bypass of [Admin_ACL], ban lists, or [Rate_Limits].
  • Log injection — user-controlled input forging or corrupting log records.

Out of scope:

  • The MeshCore protocol and firmware itself. Report those upstream to the MeshCore project.
  • RF-layer attacks — jamming, flooding, or spoofing on an open, unlicensed mesh where messages are unauthenticated by design.
  • Running the web viewer without a password on an untrusted network. The viewer's password is optional; when it is unset the interface is open to anyone who can reach the port. That is documented behavior, not a vulnerability — see docs/web-viewer.md.
  • Denial of service achieved by exhausting shared mesh airtime.

Deployment guidance

The web viewer is designed for a trusted LAN. If you expose it more widely, set a password, terminate TLS at a reverse proxy, and restrict access at the network layer.

Configuration files hold API keys and broker credentials. The service installers create a dedicated service account and set 0700/0750 modes on the configuration, state, and log directories for that reason — preserve those permissions if you install by hand.

There aren't any published security advisories