Skip to content

Security: Paraxdev/FundaCAD

Security

SECURITY.md

Security Policy

Reporting a vulnerability

Please use GitHub's private reporting: the Report a vulnerability button under the repository's Security tab. Do not open a public issue for anything security-sensitive.

FundaCAD is a small project. If a report is valid the fix ships in the next release, and the advisory is credited to you unless you prefer otherwise.

Supported versions

Only the latest release is supported; older installers are not patched.

Scope

In scope:

  • the desktop app: Tauri shell (Rust), webview frontend (TypeScript), the geometry engine, the Funda Engine (Rust, a worker process of the app)
  • the engine's localhost WebSocket (token-gated, bound to 127.0.0.1), served by fundacad-engine --ws and by the app's engine for a live session
  • the live session: while the app runs it writes its engine's port and token to session.json in its per-user app data directory, owner-only, so an AI assistant connected through MCP can join it (docs/MCP.md). Holding that token means driving the geometry engine; reaching the DOCUMENT the user has open additionally requires the app's own live-editing setting, which is visible in the window while anyone is attached. Reports about that file's permissions, or about the session rules in crates/fundacad-engine/src/live.rs, are in scope
  • the signed update pipeline (release artifacts and latest.json)
  • plugins: the permission model, the install-time consent screen, and everything between the download and the unpacked directory (docs/PLUGINS.md). A bundle that installs holding permissions its screen did not show, an archive entry that lands outside the plugin's own directory, or a download accepted from anywhere but this repository's releases, are all in scope. What is NOT a finding is a process plugin reading the user's files: it runs as the user, the install screen says so in those words, and until per-platform sandboxing lands that is a documented limit rather than a defect. Nor is a builtin capability reaching past its listed grants: a built-in is the app's own code, the screen says so in those words too, and its switch is a guarantee that it does not run, not a boundary around it while it does
  • document parsing: .funda and .sindri files, and imported STL/3MF/STEP/OBJ
  • the printers you configure on your own LAN

FundaCAD has no accounts and no backend. It makes no network calls of its own except the update check, a plugin download you asked for, and the printers you point it at, so there is no hosted service in scope.

Out of scope: vulnerabilities that require an already-compromised machine, and reports from automated scanners without a plausible impact. That includes another process running as the same user reading session.json: a process with that access can already read and rewrite the user's documents directly, so the file grants it nothing it did not have.

There aren't any published security advisories