Sanitization & Disclosure Policy
How we strip client identifiers from published research while preserving the technical fidelity that makes it useful. The constraint is simple to state and demanding to honor: nobody should be able to tell whose system it was, and any defender should be able to learn from what broke.
APPROACH · V1.0 · Last updated May 2026
Client anonymity is absolute
No published artifact identifies the client, directly or by inference. This is not a default we relax under pressure or for a compelling narrative — anonymity is a fixed constraint that the rest of the publication is shaped around. If a finding cannot be told without revealing the client, it is not published.
Technique fidelity is preserved
Within the anonymity constraint, we keep the technical substance intact: the attack class, the payload structure, the trust boundary that failed, and the remediation that closed it. A sanitized writeup that omits the mechanism is useless to defenders. We sanitize identity, never the lesson.
No security theater
We do not publish to look prolific, and we do not pad findings with severity inflation or speculative impact. Every public artifact reflects something we actually demonstrated. If a vector is interesting but unproven, it is framed as a hypothesis, not a breach.
Client and product names, brand, and any identifying language.
The attack class and the category of system affected.
Hostnames, endpoints, internal identifiers, and infrastructure detail.
The abstract topology — surfaces, trust boundaries, data flow.
Verbatim prompts, system prompts, and reproductions that fingerprint a deployment.
The payload structure and the mechanism, rewritten to be deployment-agnostic.
Volumetrics, timelines, and figures that could re-identify the client.
The remediation pattern and the regression test that confirms a fix.
Every published finding gets a stable reference of the form IPI-2026-014 — a vector class prefix, the year, and a sequential counter. The sequence is global across all engagements and increments in order of internal triage, never in order of client. There is deliberately no field that links a reference back to an engagement, a date of testing, or a customer record.
Because the counter is sequential and client-blind, the reference set leaks nothing about which clients were tested or in what order. References are permanent: once assigned, a reference always points to the same sanitized finding, so external citations stay coherent across revisions.
When a finding implicates a product or platform outside the client's control, we run coordinated disclosure with the vendor on a 90-day window. The clock starts when we make verified contact with the vendor's security team. We share reproduction detail, a proposed severity, and a remediation direction, and we request a CVE where the issue warrants a public identifier.
The contact flow is: locate a security contact or disclosure program, deliver an encrypted report, confirm receipt, and agree a timeline. If a vendor is unreachable or unresponsive after good-faith attempts, the 90-day window proceeds regardless. We do not let an absent vendor indefinitely suppress a defender-relevant finding.
// EXCEPTION — ACTIVE EXPLOITATION
We publish before a fix exists when there is evidence of active exploitation in the wild and disclosure measurably helps defenders protect themselves. In that case the public artifact leads with detection and mitigation guidance, and the vendor is notified in parallel rather than ahead.
Clients hold a veto over publication of any research derived from their engagement. They may decline a writeup entirely, delay it, or require additional sanitization beyond our baseline. We honor that veto without argument, because the engagement relationship depends on it and because client trust is the asset we are least willing to spend.
The veto has limits. It governs whether and how their engagement is written up — it does not extend to suppressing a vendor's vulnerability that we would have found and disclosed independently, nor to preventing publication of a generalized technique that no longer references their system in any form. A client cannot use the veto to silence a finding that protects the wider field once it has been fully severed from their identity.