Skip to content

Commit bf3560e

Browse files
authored
Create SECURITY.md
Signed-off-by: Luiz Bizzio <73234672+luizbizzio@users.noreply.github.com>
1 parent d72bbd7 commit bf3560e

1 file changed

Lines changed: 118 additions & 0 deletions

File tree

SECURITY.md

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
# Security Policy
2+
3+
## Supported versions
4+
5+
Security updates are provided for the latest stable release of `local-https`.
6+
7+
| Version | Supported |
8+
| --- | --- |
9+
| 1.x | Yes |
10+
| Older versions | No |
11+
12+
If you are using an older version, update before reporting a bug unless the issue also affects the latest release.
13+
14+
## Project scope
15+
16+
`local-https` is a local HTTPS helper for private networks. It creates a local Root CA, generates server certificates, builds PEM/PFX files, and can deploy them to supported services like Pi-hole, Technitium DNS, and Tailscale-based hostnames.
17+
18+
This project is not a public Certificate Authority. It is not meant to provide public internet TLS, public domain validation, or managed PKI for organizations.
19+
20+
## Security model
21+
22+
This tool assumes:
23+
24+
- You control the machine where `local-https` is installed.
25+
- You run it with root privileges because it writes under `/etc/ssl/servercerts`, `/usr/local/sbin`, `/var/lib/local-https`, and system service locations.
26+
- You understand that trusting `rootCA.crt` on a device allows certificates signed by this local CA to be trusted on that device.
27+
- You keep `rootCA.key`, `server.key`, `server.pfx`, and `.pfx-pass` private.
28+
- You do not expose generated private keys, PFX files, or the PFX password in logs, screenshots, issues, backups, or public repositories.
29+
30+
If the Root CA private key is leaked, every device that trusts that CA should remove it, and you should regenerate the CA and all server certificates.
31+
32+
## Reporting a vulnerability
33+
34+
Please do not report security vulnerabilities in public issues.
35+
36+
Use GitHub Private Vulnerability Reporting if it is available for this repository.
37+
38+
If private reporting is not available, open a public issue with only a minimal message, for example:
39+
40+
> I would like to report a security issue privately.
41+
42+
Do not include exploit details, secrets, keys, logs with private data, or reproduction steps in the public issue.
43+
44+
When reporting, include:
45+
46+
- Affected version or commit.
47+
- Operating system and distribution.
48+
- Installation method.
49+
- Clear impact.
50+
- Minimal reproduction steps.
51+
- Whether the issue exposes private keys, weakens certificate generation, changes file permissions, bypasses prompts, or affects service deployment.
52+
53+
## What counts as a security issue
54+
55+
Please report issues such as:
56+
57+
- Private keys or PFX passwords being written with unsafe permissions.
58+
- Generated certificates using unsafe cryptographic parameters.
59+
- Command injection, path injection, or unsafe shell handling.
60+
- Unsafe handling of service names, hostnames, SAN values, paths, or environment variables.
61+
- Unintended exposure of `rootCA.key`, `server.key`, `server.pfx`, or `.pfx-pass`.
62+
- Auto-renew logic that weakens permissions or exposes secrets.
63+
- Installer behavior that can be abused to execute unexpected code.
64+
- Incorrect trust guidance that could put users at risk.
65+
- Service deployment behavior that exposes HTTPS files to the wrong user or group.
66+
67+
## What is not a security issue
68+
69+
The following are usually not security vulnerabilities in this project:
70+
71+
- Browser warnings before you install and trust `rootCA.crt`.
72+
- Apps that ignore user-installed CAs.
73+
- A device trusting the local CA because the user manually installed it.
74+
- A public service being exposed to the internet by user configuration.
75+
- Local network access risks caused by unrelated firewall, router, or DNS settings.
76+
- Loss of local files due to user backup, sync, or permission changes outside this tool.
77+
- Problems caused by modifying generated files manually.
78+
79+
## Sensitive data
80+
81+
Do not share:
82+
83+
- `rootCA.key`
84+
- `server.key`
85+
- `server.pfx`
86+
- `.pfx-pass`
87+
- Full private logs with hostnames, internal IPs, or Tailscale names unless required
88+
- Screenshots that show secrets or private infrastructure details
89+
90+
For debugging, redact private values where possible.
91+
92+
## Installation risk
93+
94+
The one-line installer uses `curl` and `sudo bash`. That is convenient, but it requires trust in the repository and the network path used to download the script.
95+
96+
For a more reviewable install flow, download the script first, inspect it, then run it manually.
97+
98+
## Disclosure process
99+
100+
After a valid report is received:
101+
102+
1. The issue will be reviewed.
103+
2. If confirmed, a fix will be prepared.
104+
3. A patched release will be published when possible.
105+
4. The vulnerability may be documented after users have had a reasonable chance to update.
106+
107+
There is currently no paid bug bounty program for this project.
108+
109+
## Hardening recommendations for users
110+
111+
- Keep `/etc/ssl/servercerts` readable only by root and the intended service group.
112+
- Do not add normal user accounts to the `certs` group unless they really need certificate access.
113+
- Rotate the PFX password if you think it was exposed.
114+
- Regenerate the Root CA if `rootCA.key` may have been exposed.
115+
- Remove old trusted Root CAs from devices when you reinstall or rotate the CA.
116+
- Avoid copying generated private keys to desktops, phones, chat apps, or cloud drives.
117+
- Keep the host updated with security patches.
118+
- Review systemd timers, cron entries, and service permissions after installation.

0 commit comments

Comments
 (0)