Security Hardening Report v1
MemoryWell SDK · Feb 21 2026 · Compiled after Stage 6 completion
Clean Sweep — All Tests Passing
6 suites · 7 threats modelled · 10 endpoints admin-gated · Step 7 complete
Calls mwSecurityAudit against live production data — admin only
Store → Extract → Ingest → Search → Recall — all green
Every invalid input correctly rejected; bad tiers sanitised, not crashed
Double-submit returns same ID or pending (same operation); no duplicates
Foreign bottle ID recall/extract blocked; list scoped to caller's tenant
Parallel stores produce unique addresses; no stuck ops under hammer
Tenant A seeds real data; Tenant B attacks all 7 vectors; zero data leaked; bottle intact after all attacks
Vector: Recall / List / Search with foreign ID
Control: All endpoints derive tenant_id from auth token — never from caller payload
Vector: Extract / Ingest / Embed on foreign bottle_id
Control: Ownership verified against MemoryBottle.app_id === tenant_id before any mutation
Vector: Concurrent double-submit of same idempotency key
Control: Canonical key + lease election; loser returns pending, winner executes
Vector: Empty conversation [], 6MB content, >128-char IDs
Control: Input validation gate at function entry — rejects before any DB write
Vector: Non-admin calling nukeTestBucket, mwSecurityAudit, stage3FinalScan, hammer tests
Control: role !== 'admin' → 403 FORBIDDEN gate added in Step 7
Vector: Modifying or skipping OpLedger writes
Control: OpLedger is append-only write path; never updated after creation
Vector: Winner crashes mid-flight, lease never released
Control: Lease expiry (10s) + state machine integrity audit detects and flags stuck ops
MemoryWell SDK Security Hardening Report v1 · Generated Feb 21 2026 · Scott D'Almeida