The table below shows which versions of LITH currently receive security fixes. Only the latest stable release is actively maintained.
| Version | Supported |
|---|---|
| 2.x | ✅ Active support |
| 1.x | ❌ End of life |
| < 1.0 | ❌ Never released |
Please do not report security vulnerabilities through public GitHub Issues.
If you discover a security vulnerability in LITH, report it responsibly using one of the following channels:
Use GitHub's built-in private disclosure workflow:
- Go to the repository's Security tab
- Click "Report a vulnerability"
- Fill in the advisory form
This creates an end-to-end encrypted channel between you and the maintainers.
Send a detailed report to the maintainers at the email address listed in the repository's package.json or GitHub profile. Encrypt your message with the project's PGP key if one is published.
A useful report includes:
- Description — what is the vulnerability and what is its potential impact?
- Affected component — which file, function, or feature is affected?
- Reproduction steps — a minimal, clear sequence of steps to trigger the issue
- Proof of concept — if applicable, include a minimal PoC (but please avoid causing real harm)
- Suggested fix — if you have one, we welcome it
- Environment — browser version, OS, any relevant configuration
| Stage | Target timeframe |
|---|---|
| Initial acknowledgement | Within 48 hours |
| Severity assessment | Within 5 days |
| Fix developed (if applicable) | Within 14 days for critical; 30 days for moderate/low |
| Public disclosure | Coordinated with reporter — typically after fix is released |
We follow responsible disclosure. We will not take legal action against researchers who:
- Report in good faith
- Give us reasonable time to fix before public disclosure
- Do not access, modify, or exfiltrate user data
- Do not cause denial of service or disrupt availability
LITH is a client-side only browser instrument. There is no server, no database, no authentication, and no user data processed. The realistic attack surface is narrow:
| Area | Notes |
|---|---|
| Content Security Policy | CSP headers/meta restricts script and style loading. Bypasses are in scope. |
| Third-party fonts | Google Fonts is the sole external dependency. Supply-chain concerns are in scope. |
| Web Audio API usage | AudioContext initialisation, gain levels, and unbounded resource creation are in scope. |
| Canvas rendering | Any code path that could allow injected content to reach canvas draw calls is in scope. |
| HTML injection via URL parameters | If any query parameters are reflected into the DOM, that is in scope. (Currently: none exist.) |
- Vulnerabilities in browsers themselves (report to the relevant browser vendor)
- Social engineering attacks against contributors
- Physical attacks
- Denial of service via extremely large numbers of simultaneous browser tabs
- Missing
Strict-Transport-Security(HSTS) — depends on hosting configuration, not this project
For researchers, these are the properties LITH relies on:
-
No network requests at runtime. The CSP
connect-src 'none'directive blocks allfetch()andXMLHttpRequestcalls. The sole external resource load is Google Fonts at page load time, restricted byfont-src https://fonts.gstatic.com. -
No user data persisted. Nothing is written to
localStorage,sessionStorage,IndexedDB, or cookies. All state is ephemeral and lives only in the JavaScript IIFE closure for the duration of the page session. -
AudioContext is gated by user gesture.
bootAudio()is only called frompointerdownandkeydownevent handlers with{once: true}. Browsers independently enforce this policy, but the code also enforces it explicitly. -
All canvas text comes from internal constants. The strings
ROOTS(note names) andINAMES(interval names) are the only values ever passed to canvas draw calls. No user input, URL parameter, or DOM content reaches the canvas renderer. -
innerHTMLis used only for= ''. DOM reset assignments only. No string interpolation, no user-supplied HTML.
We are grateful to security researchers who responsibly disclose vulnerabilities. Credited researchers (with permission) will be listed here.
No CVEs reported yet.