If you discover a security vulnerability in the Python Network Dashboard, please report it by sending an email to the repository maintainers. Do not open a public issue.
When reporting a vulnerability, please provide:
- Description: Clear description of the vulnerability
- Steps to Reproduce: Detailed steps to reproduce the issue
- Impact: What an attacker could achieve
- Affected Versions: Which versions are affected
- Suggested Fix: If you have ideas for fixing it
- Initial Response: Within 48 hours
- Status Update: Within 7 days
- Fix Timeline: Depends on severity (critical issues prioritized)
- Default configuration is safe for local-only use
- No authentication required when binding to
127.0.0.1
When exposing the dashboard over the network:
-
Always set DASHBOARD_TOKEN: Never run in exposed mode without a strong token
export DASHBOARD_TOKEN='your-strong-random-token-here'
-
Use strong tokens: Minimum 32 characters, random alphanumeric
# Generate a strong token python -c "import secrets; print(secrets.token_urlsafe(32))"
-
Firewall rules: Limit access to trusted IPs only
# Example: ufw allow from 192.168.1.0/24 to any port 8081 -
VPN or SSH tunnel: Preferred for production access
# SSH tunnel example ssh -L 8081:localhost:8081 user@remote-server -
Disable terminate in production: Set
ALLOW_TERMINATE=falsefor exposed instances -
HTTPS/TLS: Use a reverse proxy (nginx/caddy) with TLS for encrypted traffic
The dashboard includes several safety mechanisms:
- Critical Process Denylist: Prevents termination of essential system processes
- PID 1 Protection: Cannot terminate init/systemd
- Rate Limiting: 10 terminate requests per minute per IP
- Confirmation Required: UI requires user confirmation before terminating
However, process termination is inherently dangerous. Use with caution.
- No user management: Single token for all users
- No audit logging: Process terminations are not logged
- In-memory rate limiting: Resets on server restart
- No HTTPS built-in: Requires reverse proxy for encrypted traffic
# Generate strong token
export DASHBOARD_TOKEN=$(python -c "import secrets; print(secrets.token_urlsafe(32))")
# Run in exposed mode with terminate disabled
EXPOSE=true ALLOW_TERMINATE=false python server.py --host 0.0.0.0 --port 8081| Version | Supported |
|---|---|
| Latest | ✅ |
| Older | ❌ |
We only support the latest version. Please update to the latest release for security fixes.