Security fixes land in the latest minor release line. Older lines are not back-ported.
| Version | Supported |
|---|---|
| 5.1.x | ✅ |
| < 5.1 | ❌ |
StratoSort is designed with security and privacy as core principles:
- Local-First Processing. All AI analysis happens locally, in-process. No data is sent to a server we operate.
- Local search index contains document text. To power semantic search and chat citations, the on-device index (Orama) stores extracted text of analyzed documents in chunks, alongside embeddings, file names, keywords, and tags. This data lives only under the user's application data directory, is never transmitted, and is deleted when the index is rebuilt from scratch or the application data directory is removed. Users indexing sensitive material should treat that directory with the same care as the documents themselves (e.g. full-disk encryption).
- Hardened Electron runtime. Sandbox enabled, context isolation enabled,
nodeIntegrationdisabled,webviewTagdisabled, sender origin validated on every IPC invocation. - Strict Content Security Policy.
script-src 'self'(nounsafe-eval); inline-style hashes pinned and verified at build time. - Electron fuses pinned in production builds.
runAsNode,enableNodeOptionsEnvironmentVariable,enableNodeCliInspectArguments,grantFileProtocolExtraPrivilegesall set tofalse;enableEmbeddedAsarIntegrityValidationandonlyLoadAppFromAsarset totrue. Verified in CI viascripts/verify-electron-fuses-config.js; verifiable on a built binary withnpx @electron/fuses read --app <path>. - Input Validation. All IPC handlers that accept input enforce Zod schema validation. Coverage
is enforced at build time via
scripts/verify-ipc-handler-schemas.js. - Path Sanitization. File paths are normalized and rejected against dangerous patterns (URL schemes, traversal, reserved names, system directories) before any filesystem call. UNC paths are accepted only for Smart Folders the user registered on a network share, for files under them, and for destinations inside them.
- Destination containment. A move or copy requested by the renderer lands only in a Smart
Folder, a folder picked in a native dialog this session, Downloads, the app data directory or the
file's own folder; any other folder is confirmed in a main-process dialog first, once per folder
per session. Autostart folders (Windows Startup, macOS LaunchAgents and LaunchDaemons,
~/.config/autostart) are refused outright.shell.openPathnever receives an executable, a link to one, or an application bundle. The vector index stays under the app data directory whateversettings.jsonsays. - Cloud consent is recorded in main. Turning cloud AI on requires a main-process confirmation dialog in addition to the in-app notice, so a renderer cannot grant consent on its own.
- Atomic file operations with transaction journaling. Multi-file moves are journaled and rolled back on next startup if the app crashes mid-operation.
- Auto-update signature validation. Update metadata is hash-verified (SHA-512); update feeds are HTTPS-only and host-allowlisted.
- No Telemetry by Default. Analytics, telemetry, and remote crash reporting are disabled. Crash dumps stay on disk under the user's application data directory and are never automatically uploaded.
We take security vulnerabilities seriously. If you discover a security issue, please follow these steps:
Contact: For sensitive reports, use GitHub Security Advisories (below). For general security questions you may open a discussion on the repository; do not post exploit details publicly.
Encrypted reports (optional): If you prefer PGP, publish a public key in your report or ask for
the maintainers’ key in an initial advisory-only message. The project may publish a dedicated
security@ address and a PGP key on the website or GitHub org profile as they become available.
- Do NOT create a public GitHub issue
- Report privately via GitHub Security Advisories (preferred)
- Use the repository’s Security tab → Report a vulnerability
- Include:
- A clear description of the vulnerability
- Steps to reproduce the issue
- Potential impact assessment
- Any suggested fixes (optional but appreciated)
- Create a GitHub issue with the
securitylabel - Avoid including exploit code or detailed attack vectors in public issues
- Acknowledgment: Within 48 hours
- Initial Assessment: Within 5 business days
- Resolution Timeline: Depends on severity
- Critical: 1-7 days
- High: 7-14 days
- Medium: 14-30 days
- Low: Next release cycle
- Download StratoSort only from official sources (GitHub Releases)
- Verify checksums when available
- Keep the application updated to the latest version
- Review imported settings files before applying
- Use strong, unique paths for sensitive document organization
- Regularly backup your settings using the built-in backup feature
- StratoSort runs entirely in-process for AI and vector search
- No telemetry or analytics are ever sent. The only outbound requests are: HTTPS update-metadata
checks when
autoUpdateCheckis enabled (on by default; disable in Settings → Application); AI model downloads from Hugging Face — the default text and embedding models download automatically at first launch unless you pick "Continue with limited AI", and the Whisper speech model downloads when you click Install model after a transcription finds it missing; fallback downloads of the vision runtime fromgithub.comor OCR language data fromcdn.jsdelivr.net, only when the bundled copy is missing; and any cloud AI provider you explicitly opt into (Anthropic / an OpenAI-compatible endpoint). Embeddings and vector search always stay local. The full list, with triggers and integrity checks, is in docs/NETWORK_TRANSPARENCY.md.
- Node integration is disabled in the renderer process
- Context isolation is enabled
- Web security is enabled
- The sandbox is enabled for all renderer processes
- StratoSort requires file system access to organize files
- Dangerous system paths are blocked from organization operations
- Path traversal attacks are mitigated through validation
- Imported settings are validated against a whitelist of allowed keys
- URL patterns are validated to prevent SSRF-style attacks
- Prototype pollution attacks are explicitly blocked
Security updates will be released as patch versions (e.g., 5.1.3, 5.1.4) and announced via:
- GitHub Releases
- In-app update notifications (if auto-update is enabled)
We appreciate the security research community's efforts in making StratoSort more secure. Contributors who report valid security issues will be acknowledged here (with permission).
Last updated: 2026-11-01 — applies to StratoSort Stack 5.1.2.