Zain Dana Harpersecurity products

Security tools

Public security tools you can install, a toolkit of small utilities, the advisories filed against my own tools, and an index of private systems used only under written authorization.

Machine-readable status for each tool: security-tools.json.

An iris shutter drawn in fine hatched blades, closed down to a small hole with a bright core showing through it, inside a ringed housing.An iris shutter drawn in fine hatched blades, closed down to a small hole with a bright core showing through it, inside a ringed housing.
updated 2026-09-27

Public security maturity index

Public systems Phantom, EMET and Accountable Surface have verified public releases; Proof Surface 0.1.0 is on PyPI; its public source is at 0.2.0, which has no release. The product catalog carries each current version.
Toolkit Security toolkit: small utilities for pre-publication review, secret redaction, release source records and hooks.
Product and theory Accountable Surface is the product. Accountable Machines is the essay behind it.
Authorized private practice Private-system index: Array, Seed, Sofer, Isomorph, Bounds, Kun, ORCA, and Gate are distinct products for controlled campaigns, native assessment, orchestration, inference testing, trust verification, access recovery, execution, and release authority.

Security advisories in my own tools

The GitHub security advisories below each cover a flaw in a released version of one of my tools. A row names what could happen, the versions affected and the release that fixes it. Seven were published on 26 September 2026 and five on 27 September 2026, Pacific time. None has a CVE. Each tool’s newest release fixes every advisory listed for it: Gather 1.9.1, Relay 0.5.0, Forum 1.15.1, Crucible 1.3.0, Canon 0.4.2 and Mneme 0.5.1.

Gather · high A program planted in the working folder could start in place of a tool through an absolute PATH entry, a link or a drive-relative name. Affected: gather-engine before 1.9.1. Fixed in 1.9.1. Advisory GHSA-r38f-cr69-jpp8
Gather · medium On Windows, MCP path arguments could make the machine sign in to a network share named in the call. Affected: gather-engine 1.6.0 and later releases before 1.9.1. Fixed in 1.9.1. Advisory GHSA-j6j7-39vh-qrp4
Gather · high MCP tool arguments could run commands and send environment secrets to a host named in the call. Affected: gather-engine before 1.9.0. Fixed in 1.9.0. Advisory GHSA-pxvv-rg3f-4v5w
Gather · high External tools started by bare name, so an executable planted in the working folder could run in their place. Affected: gather-engine before 1.9.0. Fixed in 1.9.0. Advisory GHSA-r4f3-9xrf-72m5
Relay · high A program planted where a PATH entry reached the working folder could start in place of an installed tool. Affected: flywheel-relay before 0.5.0. Fixed in 0.5.0. Advisory GHSA-82fg-qprm-q5r7
Relay · high The CLI tiers could run a planted binary or project hooks, and shell children inherited provider keys. Affected: flywheel-relay before 0.4.0. Fixed in 0.4.0. Advisory GHSA-xxcc-grhg-v9g7
Relay · medium The session listing tool could read ledger files outside the session store. Affected: flywheel-relay 0.2.0 and later releases before 0.4.0. Fixed in 0.4.0. Advisory GHSA-phjr-6qrc-39mw
Forum · high The working-folder guard added in 1.15.0 missed an alias, a repointed link and a quoted PATH entry, so a planted program could still start. Affected: forum-engine 1.15.0 only. Fixed in 1.15.1. Advisory GHSA-h6qh-49hv-4xcg
Forum · high Commands ran with the working folder and the full environment, gate approvals were not bound to a raised gate, and the local daemon had no authentication. Affected: forum-engine before 1.15.0. Fixed in 1.15.0. Advisory GHSA-36gv-h885-fmjf
Crucible · medium A verdict could report MATCH that no sealed measurement supports. Affected: crucible-bench 1.2.0 and earlier. Fixed in 1.3.0. Advisory GHSA-49qx-cj4f-wfqv
Canon · medium The shared context store could keep and return secrets, list transcript paths, and report a purge as complete before it was. Affected: flywheel-canon 0.2.0 and later releases before 0.4.2. Fixed in 0.4.2. Advisory GHSA-48rq-xjfx-6j4f
Mneme · medium The forget command could keep erased text, or erase another user’s row, while its receipt said erased. Affected: flywheel-mneme 0.5.0 only. Fixed in 0.5.1. Advisory GHSA-j2pw-g7f4-9ppp

Flywheel 1.0.4, an earlier release, pins five of these tools to affected versions: gather-engine 1.8.2, flywheel-relay 0.2.5, forum-engine 1.14.0, crucible-bench 1.2.0 and flywheel-canon 0.2.0. Its Mneme pin, 0.4.2, is outside the Mneme advisory.

No other tool in the catalog with a public repository has a published advisory as of 27 September 2026. That includes Flywheel, Articulate, Index and Accountable Surface. Articulate 0.4.2 and 0.5.0 fixed two ways a document folder could run its own program or command hooks during an editor call. Their release notes describe both fixes, and no advisory was filed.

Private operational systems

Array controls authorized campaigns and assessment waves. Seed supplies the native C++23 assessment engine. Sofer coordinates private-line agents, models, probes, tools, and domain packages. Isomorph tests model refusal and jailbreak-class inference boundaries. Bounds verifies agent, runtime, and release trust. Kun records path-only access-recovery memory without retaining raw credentials. ORCA operates engagement state, modules, findings, reports, and bundles. Gate decides whether the connected line is ready to release or hand off.

Read the practice map for what each one does. Targets, credentials, payloads, client data and findings are not published.

Authorization

Public tools may be run within their licenses. Private security work starts only after written authorization, a written scope and lawful authority are in place.

Registry

The public security registry lists each tool with its purpose, maturity, source, install command, verification command and date.

Public: Phantom · Accountable Surface · Proof Surface · EMET  ·  Toolkit: Security toolkit  ·  Private: System index · Array · Seed · Sofer · Isomorph · Bounds · Kun