{"schema":"quox.evidence.item/1","id":"cycle:2","kind":"cycle","claim_id":null,"statement":"trust-proof-self-audit-c2","not_claimed":"Not an independent third-party audit, and not a claim that no other issues exist.","status":"published","status_note":"9 published finding(s); 0 open, 9 fixed at publication.","computed_status":null,"status_history":[],"independent":{"kind":"self","note":"Issued by Quox about Quox systems (or customer sites tested under proof of control); signed by the Quox publisher key; not audited by a third party."},"issuer":"Quox","dates":{"first":"2026-09-24T23:44:57.426Z","latest":"2026-09-25T00:22:29.852Z","as_of":"2026-09-25T00:22:29.852Z"},"freshness":{"staleness_days":null,"stale":null,"expires":null,"as_of":"2026-10-23"},"evidence":[{"type":"artifact","url":"/evidence/securityAudits.json","label":"Signed security audit log (quox.security-audit-log.v1)"},{"type":"page","url":"https://quox.ai/security","label":"The /security audit band"}],"limitations":"Quox auditing Quox. Not an independent third-party audit; findings carry allowlisted fields only.","cannot_establish":"A valid signature proves this record is authentic and unmodified; it does NOT prove the system behaved correctly. It does not establish that the findings are complete, correctly graded, or that no other issues exist.","open_findings":[],"withheld_findings":0,"capabilities":["security-audit","self-audit"],"verify":{"method":"ed25519-log","artifact_url":"/evidence/securityAudits.json","receipt_url":null,"public_key":"fIQ/oPZSVq30nXqR5yU0Ny47QhHVNrD/PDqxkoIyEck=","public_key_source":"committed in the repository (scripts/security-audit-public-key.mjs) and in public/evidence/quoxtrust-verify.mjs","locator":{"file":"/evidence/securityAudits.json","path":"cycles[1]","cycle":2},"verifier_cmd":"node quoxtrust-verify.mjs ./securityAudits.json","reproduction":"Download /evidence/securityAudits.json and /evidence/quoxtrust-verify.mjs (dependency-free, Node 18+). Run the verifier command. It recomputes every WARD receipt chain_hash under the published recipe and verifies the Ed25519 signature over the canonicalized log with the committed public key. Exit 0 means authentic and unmodified; it does not mean the findings are complete or correct.","browser_verifiable":true},"citations":[{"url":"https://quox.ai/security","label":"Quox security audit log"}],"detail":{"cycle":2,"cycle_kind":"self-audit","engagement_id":"ENG_01M3AWXNJFGWMNDQTHKKGWMNDQ","scope":["quoxai/quox"],"method":"A full cross-tenant (multi-tenant isolation) sweep of every org-scoped read and write route across the collector, the tasks engine, the WARD evidence service, and the QuoxFlow executors. Each candidate was checked for a real leak versus a downstream gate, fixed with one canonical org-derivation pattern (a signed-in user is locked to their own org; a client-supplied org id is honoured only for trusted service callers; a record fetched by id is gated on ownership), and then driven as a live two-org request on the running deployment to confirm that org A cannot read or act as org B.","summary":"Second witnessed self-audit: a cross-tenant isolation sweep. Nine families were found where one organisation could read or act as another, including reads of another org's decrypted evidence, fleet inventory, workflow analytics and tool definitions, and a proxy that trusted a spoofable org header. All nine were fixed and then proven on the running system with two real organisations: thirty-two live cross-org checks in which org A is refused org B's data by id, by listing, by write, and with a spoofed org header. Every finding above is resolved. One honest residual remains and is stated on purpose: WARD's read path is now org-scoped and proven, but the evidence hash chain is still a single global chain shared by all orgs, so per-org cryptographic chain isolation is not yet certified. The counts are read live from the engagement store; an audit log that only ever shows green is indistinguishable from no audit at all.","controls_held":["The collector authentication gate held: unauthenticated requests were refused before any org data was returned on every route checked","A signed-in caller could not widen their scope with a client-supplied org id or org header on any fixed route; the override is honoured only for trusted service callers","The auth service enforced organisation membership as a second, independent gate on the Action Tracker proxy","A route with no resolvable organisation returned an empty result, never a global fallback, and a record owned by another org read as not-found rather than disclosing its existence","The isolation fixes were proven against the deployed containers, not only in unit tests, with the org id read from a verified token rather than any client-supplied value"],"totals":{"critical":0,"high":7,"medium":2,"low":0,"fixed":9,"open":0,"refuted":0},"ward":{"chain_id":"ward:org/quox/env/production","hash_recipe":"sha256(prev_chain_hash|chain_id|seq|ward_entry_id|witnessed_at|source_kind|source_id|payload_hash), hex","receipts":2}},"human_url":"/evidence/explore#cycle:2","machine_url":"/evidence/items/cycle:2.json","api_url":"/api/evidence/cycle:2","contract":{"authentic_is_not_correct":"A valid signature or a recomputed hash proves a record is authentic and unmodified. It does not prove the system behaved correctly or that a finding list is complete.","independence":"self = issued by Quox and recomputable by anyone, not audited by a third party. visitor-recomputable = the reader recomputes it offline from published material. external = an outside party issued or hosts the primary record. Quox-verified is never independently verified.","curated_status":"status OWNER-APPROVED means the owner approved the wording for publication. It is not a computed VERIFIED status. computed_status, where present, is computed from proof-engine runs and is reported separately.","verify_caveat":"authentic != correct. A valid signature proves this record is authentic and unmodified; it does NOT prove the system behaved correctly."}}