# Security remediation status — 2026-10-30 This is an implementation follow-up to the unchanged historical `audit/` documents. It is not a new comprehensive audit, vulnerability scan or production approval. | Audit finding | Implemented change | Remaining acceptance requirement | | --- | --- | --- | | S01 — PHI-capable free text | Explicit projection, opaque labels/canonical products, exact reviewed allowlists before UI/history/export; stale findings discarded | CHS approves retained fields/roots/IPs; metadata can enter source/import memory; no PHI-free assurance | | S02 — Broad provider objects | No default certificates/open files; task fields narrowed; service account/descriptions and disk labels no longer requested | Windows CIM/provider behavior and permissions must be lab-tested; provider internals not established | | S03 — Raw retention | No raw sidecar; JSON minimized; bounded session history and clear action | Review legacy artifacts, retention/deletion, memory dumps, encrypted storage and endpoint backups | | S04 — Output boundaries | Configured private local root, no overwrite, mode 0700/0600, Windows DACL gate, remote/link rejection | Windows ACL/race tests; CHS-approved root/backup/sync policy; unusual backing storage remains unverified | | S05 — Temporary stdout | Bounded in-memory pipe, sanitized failure codes, discard stderr, terminate/reap owned process | OS swap/dumps/cache/log policy and native-child behavior review; memory is not secure-erased | | S06 — Environment/registry | Small child environment allowlist; registry DoNotExpandEnvironmentNames; no stored credentials | Trusted interpreter/runtime deployment, inherited indispensable environment and native module behavior review | | S07 — Supply chain | Minimal Qt Essentials; direct version pins and observed transitive constraints | Hash/platform locks, complete native SBOM, authorized advisory scan and signed reproducible release still outstanding | | S08 — Contracts | Closed nested schema, bounded rows/strings/depth, independent timestamp validation, repeated export projection | Fuzzing/resource stress and untrusted file race review; legacy input still read before reduction | | S09 — Egress | No first-party upload added; reject common remote import/output paths before filesystem probes | Monitored Windows/native egress tests, enterprise firewall and approved storage controls | | S10 — Read-only/least privilege | Collection remains read/query operations; no elevation/remoting/configuration added; output writes isolated | Native read side effects, standard-user filtering, each supported Server OS, CHS least-privilege approval | ## Test evidence `QT_QPA_PLATFORM=offscreen .venv/bin/python -m unittest discover -s tests -v` discovered 71 tests on the Linux development host: 70 passed and one native PowerShell test was skipped. Python, synthetic regression, GUI and report tests passed. Native PowerShell AST/mocked collector tests are skipped because no PowerShell runtime exists here. No real Windows collection, installation/update, vulnerability lookup, production access or network transmission was performed. New regression cases verify canary removal across major free-text surfaces and old findings, schema/marker bypass rejection, exact-root approval excluding descendants, private/exclusive output, memory capture limits and cleanup, and bounded/cleared UI history. Seven workload scenarios retain scores 0/0/70/70/95/80/0 after projection. The 80-point file-server case uses **imported synthetic historical aggregates**; the new live default collector does not query SMB open-file activity and cannot create that evidence itself. ## Release gates 1. Review the actual release provenance. The workspace has no usable `.git` checkout; the historical bundle is not updated by these source edits. Earlier upstream `7fed3b9` cannot be verified as included without an authorized source reconciliation. 2. Obtain native Windows lab results, including revised task-CIM queries, registry read-only behavior, service/role projection, cancellation and output permissions. 3. Build clean target environments with verified dependencies, hash locks, native SBOM, advisory results and release signing. Existing broad Qt installations are not changed by editing requirements. 4. CHS security/privacy owners approve the reduced dataset and document residual PHI possibilities, dedicated least-privilege access, encryption/storage, egress, retention, audit logging and incident response. HIPAA status is an organizational determination, not an application-generated pass/fail badge. No source fix alone clears these gates. See [the deployment guide](PRIVACY_HARDENING.md) for exact configuration, manual output-folder provisioning and authorized lab checks.