|
12 | 12 | ## Features |
13 | 13 |
|
14 | 14 | - **Sandboxed WASM Runtime**: Isolated memory execution using Wasmer 4.3 (Cranelift). WASI preview1 imports are explicitly allowlisted — only a safe subset of 48 syscalls exposed; dangerous ones (filesystem, network, process) blocked. |
15 | | -- **Granular Permissions Model**: Enforces manifest-declared permissions at load time (import validation) AND call time (runtime gate) for ALL host imports including `host_get_platform`. WASI imports blocked unless in explicit allowlist. |
16 | | -- **Supply Chain Integrity**: Plugin registry (`pluglists.json`) verified via minisign/Ed25519 signature before any content trusted. |
| 15 | +- **Granular Permissions Model**: Enforces manifest-declared permissions at load time (import validation) AND call time (runtime gate) for host imports including `host_get_platform`. WASI imports blocked unless in explicit allowlist. |
17 | 16 | - **SSRF Protection**: `net_post` enforces HTTPS-only, blocks private/reserved IPs (RFC1918, loopback, link-local), limits response to 1 MiB. |
18 | | -- **Path Containment**: `cd` command restricted to current working directory jail; traversal escapes blocked. |
19 | | -- **Multitab Desktop Shell**: Launch and run multiple independent plugins concurrently in separate workspace tabs. |
| 17 | +- **Multitab**: Launch and run multiple independent plugins concurrently in separate workspace tabs. |
20 | 18 | - **Cross-Platform Native UI**: Compiles to Windows (Win32 GDI) and Linux (GTK4) with zero browser engine footprint. |
21 | 19 |
|
22 | 20 | --- |
@@ -89,13 +87,6 @@ Refer to [docs/PLUGIN_DEVELOPMENT.md](docs/PLUGIN_DEVELOPMENT.md) for details on |
89 | 87 |
|
90 | 88 | --- |
91 | 89 |
|
92 | | -## Security Architecture |
| 90 | +## Security |
93 | 91 |
|
94 | | -See [docs/security.md](docs/security.md) for the complete threat model, sandbox architecture, and security controls summary. |
95 | | - |
96 | | -### Key Guarantees |
97 | | -- **Untrusted plugins: no shell invocation** — `host_exec` resolves canonical binary path and executes directly via `execvp`/`CreateProcess`, validated against manifest `allowed_commands` allowlist. **Trusted plugins (e.g. pTerm): bypass this gate entirely by design** — see [docs/PLUGINS/CATALOG/pTerm.md](docs/PLUGINS/CATALOG/pTerm.md) and [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md). |
98 | | -- **WASI allowlist** — only 48 safe syscalls exposed; `path_open`, `sock_connect`, `proc_raise` etc. blocked |
99 | | -- **Registry signature verification** — minisign/Ed25519 baked pubkey |
100 | | -- **SSRF defense** — HTTPS only, private IP blocking, response size limit |
101 | | -- **Input bounds** — all FFI string reads capped (64 KiB general, 2 KiB URL, 16 KiB JSON, 1 MiB response) |
| 92 | +See [docs/SECURITY.md](docs/SECURITY.md) for the complete threat model, sandbox architecture, and security controls summary. |
0 commit comments