Skip to content

Commit 3ee4bfa

Browse files
Update SECURITY.md
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
1 parent 1ce44b2 commit 3ee4bfa

File tree

1 file changed

+320
-17
lines changed

1 file changed

+320
-17
lines changed

SECURITY.md

Lines changed: 320 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,328 @@
1-
<!-- SPDX-License-Identifier: AGPL-3.0-or-later -->
2-
# Security Policy
1+
Security Policy
32

4-
## Supported Versions
3+
We take security seriously. We appreciate your efforts to responsibly disclose vulnerabilities and will make every effort to acknowledge your contributions.
4+
Table of Contents
55

6-
| Version | Supported |
7-
| ------- | ------------------ |
8-
| main | :white_check_mark: |
9-
| < main | :x: |
6+
Reporting a Vulnerability
7+
What to Include
8+
Response Timeline
9+
Disclosure Policy
10+
Scope
11+
Safe Harbour
12+
Recognition
13+
Security Updates
14+
Security Best Practices
1015

11-
## Reporting a Vulnerability
16+
Reporting a Vulnerability
17+
Preferred Method: GitHub Security Advisories
1218

13-
Please report security vulnerabilities through GitHub private vulnerability reporting:
14-
1. Go to the **Security** tab
15-
2. Click **Report a vulnerability**
16-
3. Fill out the form
19+
The preferred method for reporting security vulnerabilities is through GitHub's Security Advisory feature:
1720

18-
We respond within 48 hours.
21+
Navigate to Report a Vulnerability
22+
Click "Report a vulnerability"
23+
Complete the form with as much detail as possible
24+
Submit — we'll receive a private notification
1925

20-
## Security Measures
26+
This method ensures:
2127

22-
- Dependabot for dependency updates
23-
- CodeQL for code scanning
24-
- Secret scanning and push protection
28+
End-to-end encryption of your report
29+
Private discussion space for collaboration
30+
Coordinated disclosure tooling
31+
Automatic credit when the advisory is published
2532

33+
Alternative: Encrypted Email
34+
35+
If you cannot use GitHub Security Advisories, you may email us directly:
36+
37+
Email security@hyperpolymath.org
38+
PGP Key Download Public Key
39+
Fingerprint See GPG key
40+
41+
# Import our PGP key
42+
curl -sSL https://hyperpolymath.org/gpg/security.asc | gpg --import
43+
44+
# Verify fingerprint
45+
gpg --fingerprint security@hyperpolymath.org
46+
47+
# Encrypt your report
48+
gpg --armor --encrypt --recipient security@hyperpolymath.org report.txt
49+
50+
⚠️ Important: Do not report security vulnerabilities through public GitHub issues, pull requests, discussions, or social media.
51+
52+
What to Include
53+
54+
A good vulnerability report helps us understand and reproduce the issue quickly.
55+
Required Information
56+
57+
Description: Clear explanation of the vulnerability
58+
Impact: What an attacker could achieve (confidentiality, integrity, availability)
59+
Affected versions: Which versions/commits are affected
60+
Reproduction steps: Detailed steps to reproduce the issue
61+
62+
Helpful Additional Information
63+
64+
Proof of concept: Code, scripts, or screenshots demonstrating the vulnerability
65+
Attack scenario: Realistic attack scenario showing exploitability
66+
CVSS score: Your assessment of severity (use CVSS 3.1 Calculator)
67+
CWE ID: Common Weakness Enumeration identifier if known
68+
Suggested fix: If you have ideas for remediation
69+
References: Links to related vulnerabilities, research, or advisories
70+
71+
Example Report Structure
72+
73+
## Summary
74+
[One-sentence description of the vulnerability]
75+
76+
## Vulnerability Type
77+
[e.g., SQL Injection, XSS, SSRF, Path Traversal, etc.]
78+
79+
## Affected Component
80+
[File path, function name, API endpoint, etc.]
81+
82+
## Affected Versions
83+
[Version range or specific commits]
84+
85+
## Severity Assessment
86+
- CVSS 3.1 Score: [X.X]
87+
- CVSS Vector: [CVSS:3.1/AV:X/AC:X/PR:X/UI:X/S:X/C:X/I:X/A:X]
88+
89+
## Description
90+
[Detailed technical description]
91+
92+
## Steps to Reproduce
93+
1. [First step]
94+
2. [Second step]
95+
3. [...]
96+
97+
## Proof of Concept
98+
[Code, curl commands, screenshots, etc.]
99+
100+
## Impact
101+
[What can an attacker achieve?]
102+
103+
## Suggested Remediation
104+
[Optional: your ideas for fixing]
105+
106+
## References
107+
[Links to related issues, CVEs, research]
108+
109+
Response Timeline
110+
111+
We commit to the following response times:
112+
Stage Timeframe Description
113+
Initial Response 48 hours We acknowledge receipt and confirm we're investigating
114+
Triage 7 days We assess severity, confirm the vulnerability, and estimate timeline
115+
Status Update Every 7 days Regular updates on remediation progress
116+
Resolution 90 days Target for fix development and release (complex issues may take longer)
117+
Disclosure 90 days Public disclosure after fix is available (coordinated with you)
118+
119+
Note: These are targets, not guarantees. Complex vulnerabilities may require more time. We'll communicate openly about any delays.
120+
121+
Disclosure Policy
122+
123+
We follow coordinated disclosure (also known as responsible disclosure):
124+
125+
You report the vulnerability privately
126+
We acknowledge and begin investigation
127+
We develop a fix and prepare a release
128+
We coordinate disclosure timing with you
129+
We publish security advisory and fix simultaneously
130+
You may publish your research after disclosure
131+
132+
Our Commitments
133+
134+
We will not take legal action against researchers who follow this policy
135+
We will work with you to understand and resolve the issue
136+
We will credit you in the security advisory (unless you prefer anonymity)
137+
We will notify you before public disclosure
138+
We will publish advisories with sufficient detail for users to assess risk
139+
140+
Your Commitments
141+
142+
Report vulnerabilities promptly after discovery
143+
Give us reasonable time to address the issue before disclosure
144+
Do not access, modify, or delete data beyond what's necessary to demonstrate the vulnerability
145+
Do not degrade service availability (no DoS testing on production)
146+
Do not share vulnerability details with others until coordinated disclosure
147+
148+
Disclosure Timeline
149+
150+
Day 0 You report vulnerability
151+
Day 1-2 We acknowledge receipt
152+
Day 7 We confirm vulnerability and share initial assessment
153+
Day 7-90 We develop and test fix
154+
Day 90 Coordinated public disclosure
155+
(earlier if fix is ready; later by mutual agreement)
156+
157+
If we cannot reach agreement on disclosure timing, we default to 90 days from your initial report.
158+
Scope
159+
In Scope ✅
160+
161+
The following are within scope for security research:
162+
163+
This repository (hyperpolymath/terrapin-ssg) and all its code
164+
Official releases and packages published from this repository
165+
Documentation that could lead to security issues
166+
Build and deployment configurations in this repository
167+
Dependencies (report here, we'll coordinate with upstream)
168+
169+
Out of Scope ❌
170+
171+
The following are not in scope:
172+
173+
Third-party services we integrate with (report directly to them)
174+
Social engineering attacks against maintainers
175+
Physical security
176+
Denial of service attacks against production infrastructure
177+
Spam, phishing, or other non-technical attacks
178+
Issues already reported or publicly known
179+
Theoretical vulnerabilities without proof of concept
180+
181+
Qualifying Vulnerabilities
182+
183+
We're particularly interested in:
184+
185+
Remote code execution
186+
SQL injection, command injection, code injection
187+
Authentication/authorisation bypass
188+
Cross-site scripting (XSS) and cross-site request forgery (CSRF)
189+
Server-side request forgery (SSRF)
190+
Path traversal / local file inclusion
191+
Information disclosure (credentials, PII, secrets)
192+
Cryptographic weaknesses
193+
Deserialisation vulnerabilities
194+
Memory safety issues (buffer overflows, use-after-free, etc.)
195+
Supply chain vulnerabilities (dependency confusion, etc.)
196+
Significant logic flaws
197+
198+
Non-Qualifying Issues
199+
200+
The following generally do not qualify as security vulnerabilities:
201+
202+
Missing security headers on non-sensitive pages
203+
Clickjacking on pages without sensitive actions
204+
Self-XSS (requires victim to paste code)
205+
Missing rate limiting (unless it enables a specific attack)
206+
Username/email enumeration (unless high-risk context)
207+
Missing cookie flags on non-sensitive cookies
208+
Software version disclosure
209+
Verbose error messages (unless exposing secrets)
210+
Best practice deviations without demonstrable impact
211+
212+
Safe Harbour
213+
214+
We support security research conducted in good faith.
215+
Our Promise
216+
217+
If you conduct security research in accordance with this policy:
218+
219+
✅ We will not initiate legal action against you
220+
✅ We will not report your activity to law enforcement
221+
✅ We will work with you in good faith to resolve issues
222+
✅ We consider your research authorised under the Computer Fraud and Abuse Act (CFAA), UK Computer Misuse Act, and similar laws
223+
✅ We waive any potential claim against you for circumvention of security controls
224+
225+
Good Faith Requirements
226+
227+
To qualify for safe harbour, you must:
228+
229+
Comply with this security policy
230+
Report vulnerabilities promptly
231+
Avoid privacy violations (do not access others' data)
232+
Avoid service degradation (no destructive testing)
233+
Not exploit vulnerabilities beyond proof-of-concept
234+
Not use vulnerabilities for profit (beyond bug bounties where offered)
235+
236+
⚠️ Important: This safe harbour does not extend to third-party systems. Always check their policies before testing.
237+
238+
Recognition
239+
240+
We believe in recognising security researchers who help us improve.
241+
Hall of Fame
242+
243+
Researchers who report valid vulnerabilities will be acknowledged in our Security Acknowledgments (unless they prefer anonymity).
244+
245+
Recognition includes:
246+
247+
Your name (or chosen alias)
248+
Link to your website/profile (optional)
249+
Brief description of the vulnerability class
250+
Date of report
251+
252+
What We Offer
253+
254+
✅ Public credit in security advisories
255+
✅ Acknowledgment in release notes
256+
✅ Entry in our Hall of Fame
257+
✅ Reference/recommendation letter upon request (for significant findings)
258+
259+
What We Don't Currently Offer
260+
261+
❌ Monetary bug bounties
262+
❌ Hardware or swag
263+
❌ Paid security research contracts
264+
265+
Note: We're a community project with limited resources. Your contributions help everyone who uses this software.
266+
267+
Security Updates
268+
Receiving Updates
269+
270+
To stay informed about security updates:
271+
272+
Watch this repository: Click "Watch" → "Custom" → Select "Security alerts"
273+
GitHub Security Advisories: Published at Security Advisories
274+
Release notes: Security fixes noted in CHANGELOG
275+
276+
Update Policy
277+
Severity Response
278+
Critical/High Patch release as soon as fix is ready
279+
Medium Included in next scheduled release (or earlier)
280+
Low Included in next scheduled release
281+
Supported Versions
282+
Version Supported Notes
283+
main branch ✅ Yes Latest development
284+
Latest release ✅ Yes Current stable
285+
Previous minor release ✅ Yes Security fixes backported
286+
Older versions ❌ No Please upgrade
287+
Security Best Practices
288+
289+
When using terrapin-ssg, we recommend:
290+
General
291+
292+
Keep dependencies up to date
293+
Use the latest stable release
294+
Subscribe to security notifications
295+
Review configuration against security documentation
296+
Follow principle of least privilege
297+
298+
For Contributors
299+
300+
Never commit secrets, credentials, or API keys
301+
Use signed commits (git config commit.gpgsign true)
302+
Review dependencies before adding them
303+
Run security linters locally before pushing
304+
Report any concerns about existing code
305+
306+
Additional Resources
307+
308+
Our PGP Public Key
309+
Security Advisories
310+
Changelog
311+
Contributing Guidelines
312+
CVE Database
313+
CVSS Calculator
314+
315+
Contact
316+
Purpose Contact
317+
Security issues Report via GitHub or security@hyperpolymath.org
318+
General questions GitHub Discussions
319+
Other enquiries See README for contact information
320+
Policy Changes
321+
322+
This security policy may be updated from time to time. Significant changes will be:
323+
324+
Committed to this repository with a clear commit message
325+
Noted in the changelog
326+
Announced via GitHub Discussions (for major changes)
327+
328+
Thank you for helping keep terrapin-ssg and its users safe.

0 commit comments

Comments
 (0)