From 1b8f1102b272ca3d3776a103a254aee354f7422a Mon Sep 17 00:00:00 2001 From: qnbs <155236708+qnbs@users.noreply.github.com> Date: Thu, 13 Aug 2026 09:19:11 +0200 Subject: [PATCH 1/5] docs(security): correct false desktop encryption claims docs/IDB-ENCRYPTION.md claimed Tauri desktop shares the web build's full IDB encryption lifecycle. It doesn't: services/fs/*Store.ts writes project, settings, snapshot, Codex, RAG, and binder-asset data as plaintext (LZ-string compressed only) regardless of the enableIdbAtRestEncryption setting. Enabling it on desktop still shows the passphrase unlock screen, which currently gates nothing on the filesystem side. Separately, the desktop API-key encryption "fix" credited to F-05/F-06 (2026-07-29, AUDIT.md/CHANGELOG.md) upgraded the KDF (unsalted SHA-256 -> PBKDF2 + random salt) but never addressed the actual finding: the PBKDF2 passphrase input (`${appDataPath}|${provider}|WorldScriptStudio|v1`) is built entirely from public/discoverable values, so anyone with read access to the encrypted key file can reconstruct it and decrypt in one step. No brute force needed - the added iterations defend against an attack that isn't the real one. AUDIT.md, CHANGELOG.md, and SECURITY-THREAT-MODEL.md all still described this as resolved. Corrects all four docs to state the real, current status and reopens F-05/F-06 in AUDIT.md. Real fixes for both gaps are tracked as follow-up work (fold API keys and project data into the existing user-passphrase protected-store scheme in services/storage/encryptionMigrationOrchestrator.ts instead of the current derived-passphrase/plaintext state). Docs-only change, no code/behavior modified. Co-Authored-By: Claude Sonnet 5 --- AUDIT.md | 2 +- CHANGELOG.md | 6 +++++- README.md | 8 +++++--- docs/IDB-ENCRYPTION.md | 8 +++++++- docs/SECURITY-THREAT-MODEL.md | 2 +- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/AUDIT.md b/AUDIT.md index 612d1a57..c78e0c69 100644 --- a/AUDIT.md +++ b/AUDIT.md @@ -40,7 +40,7 @@ change landed โ€” all 14 findings CONFIRMED, no baseline drift, base SHA `f5f9c1 | F-02 | ๐Ÿ”ด P0 | Unhashed inline `