dolores-subnet-2026-07-08
Two-model consensus audit: Docker verification trust-boundary + dedup weight inflation (HIGH, coordinated disclosure); 3 hardening PRs filed
What was found
AntFleet's two-model consensus review (Claude Opus 4.8 + GPT-5.5) ran independently, in parallel, against [Leonwenhao/dolores-bittensor-subnet](https://github.com/Leonwenhao/dolores-bittensor-subnet) — a Bittensor testnet subnet (netuid 523) whose validator runs a Docker "verification gauntlet" over miner-supplied task packages, an EMA + dedup scoring gate, and a byte-reproducible-weights archive. Read-only static analysis; the chain was not touched.
Verdict: 0 Critical / 2 High / 3 Medium / 3 Low. Both models independently converged on the three headline issues — a strong-agreement signal.
Consensus findings (both models, independently)
- High — Docker verification trust boundary. The subnet accepts the
verifier pipeline's self-reported "containerized / safe" flags without independent attestation, and only cross-checks one backend. Full attack narrative held under coordinated disclosure (see below).
- High — exact-hash dedup enables weight inflation. The economic gate
deduplicates tasks by exact hash within a single epoch only, so near-duplicate and recycled tasks can inflate a miner's weight. Narrative held.
- Medium — reproducibility breaks under concurrency. The "replay"
assertion re-normalized stored state instead of re-deriving it, and epoch state was written non-atomically. Fixed publicly in PR #3.
Public hardening PRs (filed as antfleet-ops)
- __LINK0__ —
charge quota before dedup so duplicate submissions consume budget.
- __LINK0__ —
make the public-safe archive copy atomic and its role-scrub configurable.
- __LINK0__ —
re-derive EMA on replay and write weights/state atomically.
Coordinated disclosure
The two HIGH findings' full attack narratives are withheld from this public receipt per the repo's SECURITY.md, which asks for private security advisories rather than public issues. The maintainer enabled private vulnerability reporting (see issue #4), and the full write-ups were delivered privately on 2026-07-17 as a GitHub repository security advisory (GHSA-7rq6-xg9j-8wc3). The narratives remain embargoed pending a fix; this page updates once a fix ships and the embargo lifts.
Evidence
- Reviewed surface:
src/dolores_subnet/{gates,scoring,archive,bridge,epoch,packaging,config}.py - Method: two independent auditors (Claude Opus 4.8 security-reviewer + Codex GPT-5.5), adjudicated for consensus. Read-only static analysis; netuid 523 not contacted.
- Public PRs: #1 (gates), #2 (archive), #3 (epoch)
- Disclosure request: issue #4 (enable private vulnerability reporting)
- Coverage caveat: the Docker executor internals and safety scanner live in the external
dolorespackage (unvendored, unpinned inpyproject.toml), so surface-level findings there are framed as subnet-side trust-boundary issues, not proven in-container exploits.