Skip to content

Commit 2f5cd1a

Browse files
Merge pull request #13 from DevPossible/copilot/check-for-secrets-and-bad-practices
Add SECURITY.md - security audit found no issues
2 parents 1ab6b4e + 475d82e commit 2f5cd1a

1 file changed

Lines changed: 122 additions & 0 deletions

File tree

SECURITY.md

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
We release patches for security vulnerabilities for the following versions:
6+
7+
| Version | Supported |
8+
| ------- | ------------------ |
9+
| 0.8.x | :white_check_mark: |
10+
| < 0.8 | :x: |
11+
12+
## Reporting a Vulnerability
13+
14+
We take the security of LCDPossible seriously. If you believe you have found a security vulnerability, please report it to us as described below.
15+
16+
**Please do not report security vulnerabilities through public GitHub issues.**
17+
18+
### How to Report
19+
20+
1. **GitHub Security Advisories**: Use the [GitHub Security Advisories](https://github.com/DevPossible/LCDPossible/security/advisories/new) feature (preferred)
21+
2. **Email**: Contact the maintainers via GitHub discussions or create a private security advisory
22+
23+
### What to Include
24+
25+
Please include as much of the following information as possible:
26+
27+
- Type of issue (e.g., buffer overflow, SQL injection, cross-site scripting, etc.)
28+
- Full paths of source file(s) related to the manifestation of the issue
29+
- The location of the affected source code (tag/branch/commit or direct URL)
30+
- Any special configuration required to reproduce the issue
31+
- Step-by-step instructions to reproduce the issue
32+
- Proof-of-concept or exploit code (if possible)
33+
- Impact of the issue, including how an attacker might exploit it
34+
35+
### Response Timeline
36+
37+
- We will acknowledge receipt of your vulnerability report within 3 business days
38+
- We will send a more detailed response within 7 days indicating next steps
39+
- We will keep you informed of the progress towards a fix
40+
- We will notify you when the vulnerability is fixed
41+
42+
## Security Best Practices for Users
43+
44+
### Configuration Files
45+
46+
- **Never commit sensitive data** to version control:
47+
- Use environment variables or local config files (*.Local.json)
48+
- These are excluded by .gitignore: `*.env`, `secrets.json`, `appsettings.*.Local.json`
49+
50+
### Proxmox API Integration
51+
52+
- **Use API tokens** instead of username/password authentication
53+
- **Create read-only tokens** with minimal required permissions
54+
- **Use SSL/TLS** for API connections (disable `IgnoreSslErrors` only for testing with self-signed certificates)
55+
- **Rotate tokens regularly** as part of good security hygiene
56+
57+
### File Permissions
58+
59+
- On Linux/macOS, ensure configuration files have appropriate permissions:
60+
```bash
61+
chmod 600 /etc/lcdpossible/appsettings.json
62+
```
63+
64+
### Running as a Service
65+
66+
- **Windows**: The service runs under LocalSystem by default. Consider using a dedicated service account
67+
- **Linux**: Use systemd with a dedicated user account (not root)
68+
- **macOS**: Use launchd with a dedicated user account
69+
70+
## Known Security Considerations
71+
72+
### USB Device Access
73+
74+
LCDPossible requires direct USB HID device access:
75+
- **Linux**: Requires udev rules for unprivileged access (see installation documentation)
76+
- **Windows**: Requires administrator privileges for first-time device access
77+
- **macOS**: May require Security & Privacy settings adjustment
78+
79+
### LibVLC Integration
80+
81+
The video panel feature uses LibVLC for media playback:
82+
- Keep LibVLC updated to receive security patches
83+
- Be cautious when playing untrusted media files or streams
84+
85+
### Web Panel
86+
87+
The web panel uses PuppeteerSharp (headless browser):
88+
- Be cautious when rendering untrusted web content
89+
- Network-isolated environments are recommended for displaying external websites
90+
91+
## Secure Development
92+
93+
### For Contributors
94+
95+
- Never commit secrets or credentials to the repository
96+
- Use the provided .gitignore patterns
97+
- Mask sensitive data in logs and CLI output
98+
- Validate and sanitize all external inputs
99+
- Follow principle of least privilege for API integrations
100+
- Use parameterized queries if database access is added in the future
101+
102+
### Code Review Checklist
103+
104+
- [ ] No hardcoded credentials or API keys
105+
- [ ] Sensitive data properly masked in logs
106+
- [ ] Input validation and sanitization
107+
- [ ] Proper error handling (no information leakage)
108+
- [ ] Dependencies checked for known vulnerabilities
109+
- [ ] SSL/TLS used for network communication
110+
- [ ] Proper resource disposal (IDisposable pattern)
111+
112+
## Security Updates
113+
114+
Security updates are released as soon as possible after a vulnerability is confirmed. We recommend:
115+
116+
- Subscribe to GitHub release notifications
117+
- Enable Dependabot alerts for your fork
118+
- Keep LCDPossible updated to the latest version
119+
120+
## Acknowledgments
121+
122+
We appreciate the security research community's efforts to help keep LCDPossible secure. Responsible disclosure helps protect all users.

0 commit comments

Comments
 (0)