Skip to content

Commit 3102879

Browse files
authored
Merge pull request #219 from cipherstash/chore/add-sec-policy
Update SECURITY.md with detailed security policy
2 parents 87ded86 + 82d8e6a commit 3102879

File tree

1 file changed

+143
-0
lines changed

1 file changed

+143
-0
lines changed

SECURITY.md

Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
# Security Policy
2+
3+
CipherStash takes the security of our software, infrastructure, and customers extremely seriously.
4+
This document describes the security posture, reporting process, and guidelines for the `protectjs` repository and associated packages.
5+
6+
## Supported Packages
7+
8+
This repository contains the JavaScript/TypeScript SDK for CipherStash Protect and related packages.
9+
10+
The below tables list each package along with the currently supported (receiving security updates).
11+
12+
### `@cipherstash/protect`
13+
14+
| Version | Supported |
15+
| ------- | ------------------ |
16+
| 10.1.x | :white_check_mark: |
17+
| 9.6.x | :white_check_mark: |
18+
| < 9.6 | :x: |
19+
20+
### `@cipherstash/drizzle`
21+
22+
| Version | Supported |
23+
| ------- | ------------------ |
24+
| 1.1.x | :white_check_mark: |
25+
| < 1.1 | :x: |
26+
27+
### `@cipherstash/schema`
28+
29+
| Version | Supported |
30+
| ------- | ------------------ |
31+
| 2.0.x | :white_check_mark: |
32+
| < 2.0 | :x: |
33+
34+
### `@cipherstash/protect-dynamodb`
35+
36+
| Version | Supported |
37+
| ------- | ------------------ |
38+
| 5.1.x | :white_check_mark: |
39+
| < 5.1 | :x: |
40+
41+
### `@cipherstash/nextjs`
42+
43+
| Version | Supported |
44+
| ------- | ------------------ |
45+
| 4.0.x | :white_check_mark: |
46+
| < 4.0 | :x: |
47+
48+
All packages follow semantic versioning and undergo internal security review, automated analysis, and reproducible builds as part of our SDLC.
49+
50+
---
51+
52+
## Reporting a Vulnerability
53+
54+
If you believe you have found a security vulnerability in any CipherStash code, service, or dependency:
55+
56+
📧 **Please email: `[email protected]`**
57+
58+
We request that you **do not publicly disclose** the issue before we have had a chance to investigate and provide a fix.
59+
60+
When reporting, please include (as applicable):
61+
62+
- Description of the vulnerability
63+
- Steps to reproduce
64+
- Impact assessment or potential misuse
65+
- Any relevant logs, PoCs, or screenshots
66+
- Suggested remediation (if you have one)
67+
68+
We will acknowledge receipt within **48 hours** and provide regular updates until the issue is resolved.
69+
70+
---
71+
72+
## Disclosure & Response Policy
73+
74+
CipherStash follows a **coordinated responsible disclosure** process:
75+
76+
1. **Submit report** privately via `[email protected]`.
77+
2. **Acknowledgement** within 48 hours.
78+
3. **Assessment** of severity using CVSS and internal risk models.
79+
4. **Fix development** and patch release in a private branch.
80+
5. **Coordinated disclosure**, including:
81+
- New patch release(s)
82+
- Security advisory on GitHub
83+
- Credit to reporter (optional)
84+
85+
We will never take legal action against good-faith security researchers who follow this policy.
86+
87+
---
88+
89+
## Scope
90+
91+
The following are **in scope**:
92+
93+
- The `cipherstash/protectjs` GitHub repository
94+
- All published NPM packages under the `@cipherstash/protect*` namespace
95+
- Protect.js cryptographic implementations, configuration layers, and CLI tooling
96+
- Key-handling, authenticated encryption behaviour, JSON/JSONB field-level encryption flows
97+
- Documentation or code examples that could lead to insecure usage
98+
- CipherStash’s internal infrastructure
99+
- CipherStash Proxy, ZeroKMS, or other backend products
100+
101+
The following are **out of scope**:
102+
103+
- Example applications in the `examples` dir (though we are still grateful for any relevant disclosires there)
104+
- Social engineering, physical attacks, or denial-of-service
105+
- Attacks requiring privileged access to developer machines or CI/CD infrastructure
106+
107+
---
108+
109+
## Security Guidelines for Contributors
110+
111+
To maintain a strong security posture, contributors MUST:
112+
113+
### ⚙️ Follow cryptographic safety rules
114+
- Do **not** modify cryptographic primitives without prior discussion
115+
- Avoid introducing new crypto dependencies without prior discussion
116+
- Never check in test keys, secrets, or example credentials
117+
118+
### 🛡 Coding & dependency hygiene
119+
- Avoid adding dependencies unless necessary
120+
- Keep dependencies updated and vetted
121+
- Use TypeScript for all new code
122+
- Ensure all code paths that handle keys or encrypted data include type-safe boundaries
123+
124+
### 🔍 Testing & review
125+
- Submit PRs with tests covering edge cases and misuse-resistant behaviour
126+
- Flag any changes involving key derivation, key wrapping, AAD, or encryption modes for mandatory security review
127+
- Do not merge PRs that downgrade security controls or introduce unsafe defaults
128+
129+
---
130+
131+
## Questions?
132+
133+
For general questions about CipherStash security practices (not security incidents), contact:
134+
135+
136+
137+
For vulnerability disclosures:
138+
139+
140+
141+
---
142+
143+
Thank you for helping keep `protectjs` and the wider CipherStash ecosystem secure.

0 commit comments

Comments
 (0)