Forge is a desktop application framework that provides native system access through TypeScript. Security is a core concern given the framework's capability-based permission model and IPC mechanisms.
| Version | Supported |
|---|---|
| 0.1.x | ✅ |
As an alpha project, we only support the latest release. Users should always update to the newest version.
We take security vulnerabilities seriously. If you discover a security issue, please report it responsibly.
For sensitive security issues, please use GitHub Security Advisories:
- Go to Security Advisories
- Click "Report a vulnerability"
- Provide detailed information about the issue
This allows us to coordinate a fix before public disclosure.
If you cannot use GitHub Security Advisories:
- Email: layerdynamics@proton.me (include "SECURITY" in subject)
- GitHub: Open a private security advisory
- Description of the vulnerability
- Steps to reproduce
- Affected versions
- Potential impact
- Suggested fix (if any)
- Initial Response: Within 48 hours
- Status Update: Within 7 days
- Fix Timeline: Depends on severity (critical issues prioritized)
- We will acknowledge receipt of your report
- We will investigate and determine the impact
- We will develop and test a fix
- We will release a patched version
- We will publicly disclose the issue (crediting you, unless you prefer anonymity)
The following are considered security issues:
- Sandbox escapes allowing unauthorized system access
- Capability/permission bypasses in
runtime:*modules - IPC vulnerabilities allowing cross-window attacks
- Memory safety issues in Rust runtime code
- Arbitrary code execution vulnerabilities
ext_fs: Unauthorized file system access beyond granted permissionsext_ui: Window spoofing, clickjacking, or IPC message injectionext_net: Request smuggling or unauthorized network accessext_sys: Unauthorized system information disclosureext_process: Process injection or privilege escalationext_wasm: WASM sandbox escapes or memory corruption
- Supply chain vulnerabilities in the build process
- Code signing bypass in
forge sign - Bundle tampering in
forge bundle
- Cross-site scripting (XSS) via
app://protocol - Injection attacks through the
window.hostbridge - Insecure content loading
The following are generally not considered security issues:
- Vulnerabilities in user-created applications (not the framework)
- Issues requiring physical access to the machine
- Social engineering attacks
- Denial of service that requires authenticated access
- Security issues in dependencies (report upstream, but notify us)
- Theoretical vulnerabilities without proof of concept
When building apps with Forge:
# manifest.app.toml - Request minimum necessary permissions
[capabilities]
fs = ["read:./data", "write:./data"] # Scoped, not blanket access
net = ["https://api.example.com"] # Specific domains only// Validate all IPC messages from renderer
for await (const event of windowEvents()) {
// Always validate channel and payload
if (!isValidChannel(event.channel)) continue;
if (!validatePayload(event.payload)) continue;
// Process validated message
}<!-- Use restrictive CSP in your web content -->
<meta http-equiv="Content-Security-Policy"
content="default-src 'self' app:; script-src 'self'">Forge includes several security mechanisms:
- Capability-Based Permissions - Apps must declare required system access in
manifest.app.toml - IPC Isolation - Renderer processes communicate through controlled channels
- Sandboxed WebViews - UI runs in system WebView with limited capabilities
- No Node.js - Using Deno eliminates common Node.js security pitfalls
We thank the following researchers for responsibly disclosing security issues:
No vulnerabilities reported yet.
Thank you for helping keep Forge and its users safe.