FFalCAD docs

Security baseline

What we protect

Private hardware designs (schematics, boards, firmware, HDL), user accounts and sessions, the integrity of manufacturing output, physical devices connected to a user’s machine, and the build and supply chain.

Controls that exist today

Threat Control Evidence
Malicious project files Schema validation, safe relative paths (no traversal, devices, drive letters), realpath symlink confinement, size caps, zip-slip and zip-bomb limits, newer-version refusal falcad-format tests
Corrupting edits Every mutation is a validated, atomic transaction with referential-integrity and document checks falcad-kernel tests, conformance vectors
Enumerable identifiers UUID v4 from the OS CSPRNG everywhere; numeric ids rejected by schema format tests
Renderer compromise in desktop Sandbox, context isolation, no Node, custom scheme, blocked navigation and windows, permissions denied, opaque per-window folder handles, sender checks on every IPC call Electron e2e test (no require/process, exact bridge, forged handle refused)
Untrusted HDL/tool runs No shell, argument arrays, cwd confinement, env allowlist, output caps, deadlines with process-tree kill; WebAssembly runs in workers with deadlines falcad-hdl, falcad-mcu tests (being consolidated into falcad-toolchains)
Hardware misuse Flash/erase/debug only with a single-use approval bound to device identity and firmware SHA-256; no device I/O exposed to automation falcad-mcu tests
Automation and prompt injection MCP: only exposed projects, ids instead of paths, read-only plus proposals, no approval/device tools, design text returned as labelled data falcad-cli MCP tests
Supply chain Pinned versions, npm audit in CI, overrides for vulnerable transitive packages, license ledger falcad-toolchains/LICENSE_LEDGER.md, app package.json overrides
Cloud access control (BOLA/IDOR) Resource-based authorization loading current membership on every request and hub call; 404 for invisible resources; an authorization matrix test enumerating every endpoint across roles and tenants private falcad-cloud test suite
Content injection in the web app Strict CSP generated at build time; no remote scripts; build fails if production targets localhost vite.config.ts

Known gaps

Report vulnerabilities as described in Reporting vulnerabilities.