|
1 | 1 | # Security Policy |
2 | 2 |
|
3 | | -QECTOR Decoder is primarily a local Rust/Python research and validation library, but the repository also contains optional service-facing components such as REST, gRPC, MCP, metrics, Docker packaging, CUDA loading, and OpenCL loading. Treat those components as higher-risk deployment surfaces. |
| 3 | +QECTOR Decoder is primarily a local Rust/Python research and validation library. However, the repository and optional builds contain service-facing components (e.g., REST, gRPC, MCP, metrics, Docker packaging, CUDA/OpenCL loading). These optional components should be treated as higher-risk deployment surfaces and require appropriate hardening. |
4 | 4 |
|
5 | | -## Supported versions |
| 5 | +## Supported Versions |
6 | 6 |
|
7 | | -| Version | Security support | |
8 | | -|---|---| |
9 | | -| `0.5.x` | Supported for source-available review, private vulnerability disclosure, and commercial-license security discussion | |
10 | | -| Older snapshots | Best-effort only | |
| 7 | +| Version | Security Support | |
| 8 | +| :--- | :--- | |
| 9 | +| `0.6.x` (Current: `0.6.6`) | **Active.** Supported for source-available review, private vulnerability disclosure, and commercial-license security discussion. | |
| 10 | +| `0.5.x` | **Legacy.** Supported only for private vulnerability disclosure and commercial-license security discussion. | |
| 11 | +| Older snapshots | Best-effort only. No guaranteed patches. | |
11 | 12 |
|
12 | | -## Report a vulnerability privately |
| 13 | +## Report a Vulnerability Privately |
13 | 14 |
|
14 | | -Send security reports to: |
| 15 | +We take security seriously. If you discover a vulnerability, please report it privately to allow time for a fix before public disclosure. |
15 | 16 |
|
| 17 | +Send security reports to: |
16 | 18 | ```text |
17 | 19 | admin@qector.store |
18 | 20 | ``` |
19 | 21 |
|
20 | | -Use the subject: |
21 | | - |
| 22 | +Use the following subject line: |
22 | 23 | ```text |
23 | 24 | [SECURITY] QECTOR Decoder disclosure |
24 | 25 | ``` |
25 | 26 |
|
26 | | -Include: |
27 | | - |
28 | | -```text |
29 | | -1. Affected component or file path |
30 | | -2. Affected version or commit SHA |
31 | | -3. Operating system and Python/Rust versions |
32 | | -4. Reproduction steps |
33 | | -5. Expected impact |
34 | | -6. Whether the issue affects local library use, REST, gRPC, Docker, CUDA, OpenCL, benchmark artifacts, or licensing/security metadata |
35 | | -7. Any proof of concept, kept private |
36 | | -``` |
| 27 | +Please include the following information in your report: |
| 28 | +1. Affected component or file path. |
| 29 | +2. Affected version or commit SHA. |
| 30 | +3. Operating system and Python/Rust versions. |
| 31 | +4. Clear reproduction steps. |
| 32 | +5. Expected impact and severity. |
| 33 | +6. Whether the issue affects local library use, REST, gRPC, Docker, CUDA, OpenCL, benchmark artifacts, or licensing/security metadata. |
| 34 | +7. Any proof of concept (must be kept strictly private). |
37 | 35 |
|
38 | | -Do not publish a public proof of concept before a fix or mitigation is available. |
| 36 | +**Do not publish a public proof of concept or exploit before a fix or mitigation is available and coordinated with the maintainer.** |
39 | 37 |
|
40 | 38 | ## Scope |
41 | 39 |
|
42 | | -In scope: |
43 | | - |
44 | | -```text |
45 | | -Rust/PyO3 extension memory safety issues |
46 | | -Python package security issues |
47 | | -Unsafe deserialization or file handling |
48 | | -REST/gRPC/MCP service exposure risks |
49 | | -Docker/runtime hardening issues |
50 | | -CUDA/OpenCL driver-loading issues |
51 | | -Benchmark artifact tampering or misleading security-sensitive metadata |
52 | | -Dependency vulnerabilities in the default build path |
53 | | -``` |
54 | | - |
55 | | -Out of scope unless it creates a concrete vulnerability: |
| 40 | +**In Scope:** |
| 41 | +- Rust/PyO3 extension memory safety issues (e.g., buffer overflows, use-after-free). |
| 42 | +- Python package security issues (e.g., unsafe deserialization, path traversal). |
| 43 | +- REST/gRPC/MCP service exposure risks (e.g., lack of authentication, injection). |
| 44 | +- Docker/runtime hardening issues or container escape vectors. |
| 45 | +- CUDA/OpenCL driver-loading or memory isolation issues. |
| 46 | +- Benchmark artifact tampering or misleading security-sensitive metadata. |
| 47 | +- Dependency vulnerabilities in the default build path. |
56 | 48 |
|
57 | | -```text |
58 | | -Performance disagreements |
59 | | -Scientific claim disputes |
60 | | -Expected crashes from intentionally malformed local research inputs |
61 | | -Licensing disagreements |
62 | | -Unsupported GPU driver installation problems |
63 | | -Issues requiring already-compromised administrator access without additional impact |
64 | | -``` |
| 49 | +**Out of Scope** (unless it creates a concrete, exploitable vulnerability): |
| 50 | +- Performance disagreements or benchmark disputes. |
| 51 | +- Scientific claim or algorithmic accuracy disputes. |
| 52 | +- Expected crashes from intentionally malformed local research inputs (e.g., invalid DEM files). |
| 53 | +- Licensing disagreements or requests for free commercial use. |
| 54 | +- Unsupported GPU driver installation problems. |
| 55 | +- Issues requiring already-compromised administrator/root access without additional impact. |
65 | 56 |
|
66 | | -## Expected response |
| 57 | +## Expected Response |
67 | 58 |
|
68 | | -For serious private reports, the maintainer will attempt to acknowledge receipt within a reasonable timeframe. Resolution time depends on severity, reproducibility, commercial-license obligations, and whether the issue affects only optional service layers or the default local library path. |
| 59 | +For serious private reports, the maintainer will attempt to acknowledge receipt within 3–5 business days. Resolution time depends on severity, reproducibility, commercial-license obligations, and whether the issue affects only optional service layers or the default local library path. |
69 | 60 |
|
70 | | -## Deployment guidance |
| 61 | +*Note: Full security review of the proprietary Rust core is available exclusively under a Non-Disclosure Agreement (NDA) or Commercial License.* |
71 | 62 |
|
72 | | -The default public install path is a local CPU-safe source build. It is not a hardened internet service. |
| 63 | +## Deployment Guidance |
73 | 64 |
|
74 | | -Before exposing REST, gRPC, MCP, Docker, CUDA, or OpenCL functionality in a production or customer-facing environment, review: |
| 65 | +The default public install path (via PyPI) is a local, CPU-safe binary. It is **not** a hardened internet-facing service. |
75 | 66 |
|
| 67 | +Before exposing REST, gRPC, MCP, Docker, CUDA, or OpenCL functionality in a production, multi-tenant, or customer-facing environment, you must review: |
76 | 68 | ```text |
77 | 69 | docs/SECURITY_DEPLOYMENT.md |
78 | 70 | ``` |
| 71 | +*(If this file is not present in your checkout, contact admin@qector.store for the enterprise deployment guide.)* |
79 | 72 |
|
80 | | -Commercial SaaS, hosted API, OEM, or embedded deployments require a separate written commercial agreement. |
| 73 | +Commercial SaaS, hosted API, OEM, or embedded deployments require a separate, written commercial agreement. |
81 | 74 |
|
82 | | -## Dependency and SBOM guidance |
| 75 | +## Dependency and SBOM Guidance |
83 | 76 |
|
84 | | -For reproducible security review, record: |
| 77 | +For reproducible security review and Software Bill of Materials (SBOM) generation, record your environment state: |
85 | 78 |
|
86 | | -```text |
| 79 | +```bash |
87 | 80 | git rev-parse HEAD |
88 | 81 | cargo metadata --format-version 1 |
89 | 82 | python -m pip freeze |
90 | 83 | python -m pip list |
91 | 84 | ``` |
92 | 85 |
|
93 | | -Optional audit tools: |
94 | | - |
95 | | -```text |
| 86 | +Optional local audit tools (advisory only): |
| 87 | +```bash |
96 | 88 | cargo audit |
97 | 89 | python -m pip install pip-audit |
98 | 90 | python -m pip_audit |
99 | 91 | ``` |
| 92 | +*These tools are advisory; they do not replace formal source review or deployment hardening.* |
100 | 93 |
|
101 | | -These tools are advisory; they do not replace source review or deployment hardening. |
| 94 | +## License Boundary |
102 | 95 |
|
103 | | -## License boundary |
| 96 | +**Security reporting, issue filing, source review, or contribution does not grant commercial use rights.** |
104 | 97 |
|
105 | | -Security reporting, issue filing, source review, or contribution does not grant commercial use rights. QECTOR remains source-available proprietary software. See `LICENSE` and `COMMERCIAL.md`. |
| 98 | +QECTOR remains source-available proprietary software. All commercial, institutional, and lab use requires a paid license. See `LICENSE` and `COMMERCIAL.md` for full terms. Provenance and chain of title are protected via timestamped Zenodo archival. |
| 99 | +``` |
| 100 | +Save this as `SECURITY.md` in the root of your repository. GitHub will automatically detect it and display a "Security" tab on your repo, signaling to enterprise users that you take this seriously. |
0 commit comments