|
1 | 1 | # Security Policy |
2 | 2 |
|
3 | | -## Supported Versions |
| 3 | +## Reporting a vulnerability |
4 | 4 |
|
5 | | -We release security updates for the latest stable version of the software. Older versions may not receive security updates. |
| 5 | +**Please do not open a public issue for a security problem.** |
6 | 6 |
|
7 | | -## Reporting a Vulnerability |
| 7 | +Report it through **GitHub's private vulnerability reporting**: go to the |
| 8 | +affected repository, open the *Security* tab, and choose *Report a |
| 9 | +vulnerability*. That keeps the report private to you and the maintainers until |
| 10 | +a fix is available, and gives you a thread to follow it in. |
8 | 11 |
|
9 | | -If you discover a security vulnerability, please report it to us privately. Do not create a public issue. |
| 12 | +If you cannot use that — no GitHub account, or the repository does not offer |
| 13 | +it — email **contact@simonwalz.de** with `CuOS security` in the subject. |
10 | 14 |
|
11 | | -Please email [Simon Walz](https://simonwalz.de/?id=impressum) with the details of the vulnerability. Include: |
| 15 | +Please include: |
12 | 16 |
|
13 | | -- A description of the vulnerability |
14 | | -- Steps to reproduce |
15 | | -- Any relevant logs or screenshots |
| 17 | +- which component and version (`cuos version` on a running system, or the tag |
| 18 | + or commit you built from) |
| 19 | +- what an attacker can do, and what access they need to start |
| 20 | +- steps to reproduce, and any logs — **with credentials removed** |
16 | 21 |
|
17 | | -We will respond as quickly as possible and coordinate a fix and disclosure timeline. |
| 22 | +### What happens next |
18 | 23 |
|
19 | | -## Security Best Practices |
| 24 | +| | | |
| 25 | +|---|---| |
| 26 | +| We acknowledge the report | within **5 working days** | |
| 27 | +| We tell you whether we can reproduce it, and our assessment | within **10 working days** | |
| 28 | +| We agree a disclosure date with you | once a fix or a mitigation exists | |
20 | 29 |
|
21 | | -- Keep your dependencies up to date. |
22 | | -- Avoid exposing sensitive data in logs or error messages. |
23 | | -- Use secure coding practices and input validation. |
| 30 | +If you do not hear from us in that time, please chase us — a missed |
| 31 | +notification is more likely than silence on purpose. |
24 | 32 |
|
25 | | -Thank you for helping us keep our project secure! |
| 33 | +We will credit you in the release notes unless you would rather stay anonymous. |
| 34 | +We have no bug bounty. |
| 35 | + |
| 36 | +## Which versions get fixes |
| 37 | + |
| 38 | +CuOS is **pre-1.0 and has no long-term support branches**. Security fixes go |
| 39 | +into the current release; there are no backports to older tags. If you run a |
| 40 | +pinned version, expect to move forward to take a fix. |
| 41 | + |
| 42 | +Every CuOS image reference is pinned by digest and a mismatch is fatal, so |
| 43 | +updating means changing the pin deliberately rather than drifting onto a new |
| 44 | +image by accident. |
| 45 | + |
| 46 | +## What is in scope |
| 47 | + |
| 48 | +The four repositories of this organisation: the operating system and its update |
| 49 | +mechanism (`cuos`), the build tooling (`cuos-release`), the IaC manager, WebUI |
| 50 | +and fleet components (`cuos-iac`), and these org-wide files. |
| 51 | + |
| 52 | +Out of scope: vulnerabilities in application containers you run **on** CuOS, |
| 53 | +which belong to their own projects; and the consequences of a configuration that |
| 54 | +deliberately weakens the system — an unprivileged report that CuOS is insecure |
| 55 | +when run with `os_root_password` set to a known value tells us nothing. |
| 56 | + |
| 57 | +## Hardening your own deployment |
| 58 | + |
| 59 | +- Pin images by digest and update deliberately. |
| 60 | +- Keep registry credentials out of images and out of `system.json` files you |
| 61 | + share; use the config encryption in `cuos-release`. |
| 62 | +- Sign your IaC repository's commits and set `iac_repo_signing_keys`, so a |
| 63 | + device only applies configuration it can verify. |
| 64 | +- Give the application container only the privileges it needs. |
0 commit comments