You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Security-audit umbrella originating from c118a834. The attached report.md remains historical evidence; its Finding 1 (opaque-HRP deadline bypass) was subsequently falsified and is not tracked as a defect.
This issue also tracks the three independent adversarial reviews and their consolidated-review.md disposition so the release gate has one exhaustive map rather than only the highest-severity implementation findings.
BL2 — BSD notice omitted from distributions: fixed by merged build: Include all code license notices #15; current pyproject.toml includes LICENSES/* and MANIFEST.in recursively includes LICENSES.
M2 — ms32 Core requirement during recovery/correction: retained as an explicit ms32 trust-boundary choice rather than silently weakened. cli: Name the real Bitcoin Core requirement when it is missing #84 / cli: Name the real Bitcoin Core requirement when it is missing #99 now names Bitcoin Core 32+/RPC, explains what Core supplies, points secret/share/correct to the Core-independent codex32 fallback, connects before damaged-seed search, stays under <5200, has current-head Codex ACK, and exact-head Python-package + Core-fixture CI are green.
M3 — supplying S mid-recovery silently discarded shares:cli: Announce recovery secret switch #95 keeps the deliberate mode switch but announces it. The focused patch is reviewed; human rewrite/squash/integration remains.
M5 — inherited Bitcoin Core contributor boilerplate: draft docs: Replace contributor boilerplate #115 is focused, CI-green and content-ACKed by Codex; responsible-human rewrite/squash is the remaining policy step.
M6 — stale benchmark numbers: draft docs: Label benchmark evidence historical #116 labels the measurements/raw files as historical evidence tied to commit 6802d86 and directs reviewers to current CI/budget evidence. Exact-head CI is green and Codex ACKed it.
M7 — optimized tests/correction-constant verifier absent from CI:ci: Test optimized mode and correction constants #40 is closed; current python-package.yml runs both python -O -m pytest -q and tools/verify_correction_constants.py.
M8 — supplied-seed paths skipped BIP32-root validity: merged generation: Validate supplied BIP32 seeds #16 fixes supplied raw bytes, but did not validate an existing MasterSeed passed to CreationCeremony.from_secret. New generation: Validate existing Bitcoin roots before sharing #125 / focused generation: Validate roots before re-sharing #126 rejects an invalid BIP32 root before identifier randomness or share creation; CL secrets are unchanged. The behavioral patch passed all 953 tests normally and under python -O, Ruff, strict mypy, and fresh wheel/sdist checks. Current head 8cd584e is CI-green and has a current-head Codex ACK; human integration remains.
L4 — host-specific raw benchmark data: retained intentionally as historical evidence rather than current qualification data; docs: Label benchmark evidence historical #116 makes that status explicit.
L5 — bespoke/nearly-full review budget: the maintainer-authorized library cap is <5200; docs: Replace contributor boilerplate #115 documents the metric/change-control contract and the existing enforcement test remains authoritative. GUI has a separate authorized cap.
L6 — commit hygiene: final stacked AI-assisted follow-ups require responsible-human rewrite/squash under the repository AI policy; docs: Prepare the v1 review handoff #38 tracks this human-only integration step.
stale MANIFEST.in provenance exclusion: fixed on current reviewability-v1 (d6a9f99);
ignored provenance/plans: deliberate local-only unfinished work belongs under ignored docs/planning/; finished security audit material belongs under docs/security/;
budget-test discoverability: docs: Prepare the v1 review handoff #38 requires the final reviewer guide to point directly at the enforcement tests; no runtime move is required;
stale sibling branch names: repository housekeeping only, not a release/security gate; do not treat those names as fix provenance.
Current release-gate disposition
The audit verdict itself is focused PR #23. Security-contract wording is #59 / #4. Exact-artifact release qualification is #52 / #5. No material validated finding from the supplied reviews now lacks a tracker or a focused fix/defer path. The newly reproduced existing-secret part of M8 is #125/#126, not already fixed by #16. #127 adds the exhaustive original/consolidated finding ledger at docs/security/adversarial-2026-10-04.md, with all numbered findings, nits, source qualifications, and explicit limitations.
Keep this umbrella open until the remaining focused PRs are human-integrated, the GUI restore delta is replayed and manually qualified, #23 is on the frozen candidate, and a fresh adversarial review covers the frozen library/CLI/GUI/user-documentation tips.
Local composed proof on 2026-10-04 applied the reviewed #99 delta to the #53 + #126 behavioral tree and #127's AST-equivalent tuple cleanup: 59 focused Core/CLI/disclosure tests passed; the library measured 5,198 logical review lines; the official Bitcoin Core 32.0rc2 regtest fixture passed (/Satoshi:32.0.0/). This is limited interaction evidence, not a frozen-candidate full-suite or GUI qualification. The downloaded archive's SHA-256 matched the official HTTPS checksum list; this run did not newly verify its PGP signature.
Security-audit umbrella originating from
c118a834. The attachedreport.mdremains historical evidence; its Finding 1 (opaque-HRP deadline bypass) was subsequently falsified and is not tracked as a defect.This issue also tracks the three independent adversarial reviews and their
consolidated-review.mddisposition so the release gate has one exhaustive map rather than only the highest-severity implementation findings.Material validated findings
bip32/Coincurve dependency; current CI installs.[dev]and runs the suite. Draft docs: Replace contributor boilerplate #115 rewrites the contributor on-ramp around that actual setup.pyproject.tomlincludesLICENSES/*andMANIFEST.inrecursively includesLICENSES.repr/strdisclosure: fixed by merged bip93: Redact artifact string rendering #25 / Redact secret-bearing artifact string representations #22; rendering is redacted and.textis the explicit export path.reviewability-v1; Define correction exit statuses #45 supplies the distinct exit-status contract.ms32Core requirement during recovery/correction: retained as an explicitms32trust-boundary choice rather than silently weakened. cli: Name the real Bitcoin Core requirement when it is missing #84 / cli: Name the real Bitcoin Core requirement when it is missing #99 now names Bitcoin Core 32+/RPC, explains what Core supplies, pointssecret/share/correctto the Core-independentcodex32fallback, connects before damaged-seed search, stays under<5200, has current-head Codex ACK, and exact-head Python-package + Core-fixture CI are green.6802d86and directs reviewers to current CI/budget evidence. Exact-head CI is green and Codex ACKed it.python-package.ymlruns bothpython -O -m pytest -qandtools/verify_correction_constants.py.MasterSeedpassed toCreationCeremony.from_secret. New generation: Validate existing Bitcoin roots before sharing #125 / focused generation: Validate roots before re-sharing #126 rejects an invalid BIP32 root before identifier randomness or share creation; CL secrets are unchanged. The behavioral patch passed all 953 tests normally and underpython -O, Ruff, strict mypy, and fresh wheel/sdist checks. Current head8cd584eis CI-green and has a current-head Codex ACK; human integration remains.1differs from the BIP-93 reference decoder: accepted v1 parser divergence, not a secret-safety defect. docs: Close adversarial audit tracking gaps #127 records it in the API guide; docs: Prepare the v1 review handoff #38 requires the frozen reviewer handoff to carry that qualification.Low / reviewability findings
correctoverloaded exit 1: cli: Define stable correct exit statuses #39 / Define correction exit statuses #45 defines stable 0/1/2/3 statuses; integrated with correct: Interpret mixed-case damage #42.assertstatements vanish under-O: no reproduced security failure. The release control is ci: Test optimized mode and correction constants #40's full optimized suite in CI; docs: Close adversarial audit tracking gaps #127 explicitly documents that public input/identity gates use exceptions and remaining assertions concern validated internal state. docs: Prepare the v1 review handoff #38 must call out the optimized gate in reviewer evidence.<5200; docs: Replace contributor boilerplate #115 documents the metric/change-control contract and the existing enforcement test remains authoritative. GUI has a separate authorized cap.Tiny / edge findings
__all__count: wallet: Privatize Core descriptor records #64 removes obsoletecore_descriptors, sets the intended package surface to 23 names and adds regression coverage;MANIFEST.inprovenance exclusion: fixed on currentreviewability-v1(d6a9f99);docs/planning/; finished security audit material belongs underdocs/security/;1.0.0rc1: final release metadata remains governed by Gate v1 publication on final-RC integration and built-artifact verification #5/release: Qualify exact artifacts before publish #52; no security behavior depends on this Trove label;pyproject.tomlblank line: no longer present on currentreviewability-v1;.codex/config.toml: removed by codex: Remove project-level agent overrides #41;Current release-gate disposition
The audit verdict itself is focused PR #23. Security-contract wording is #59 / #4. Exact-artifact release qualification is #52 / #5. No material validated finding from the supplied reviews now lacks a tracker or a focused fix/defer path. The newly reproduced existing-secret part of M8 is #125/#126, not already fixed by #16. #127 adds the exhaustive original/consolidated finding ledger at
docs/security/adversarial-2026-10-04.md, with all numbered findings, nits, source qualifications, and explicit limitations.Keep this umbrella open until the remaining focused PRs are human-integrated, the GUI restore delta is replayed and manually qualified, #23 is on the frozen candidate, and a fresh adversarial review covers the frozen library/CLI/GUI/user-documentation tips.
Local composed proof on 2026-10-04 applied the reviewed #99 delta to the #53 + #126 behavioral tree and #127's AST-equivalent tuple cleanup: 59 focused Core/CLI/disclosure tests passed; the library measured 5,198 logical review lines; the official Bitcoin Core 32.0rc2 regtest fixture passed (
/Satoshi:32.0.0/). This is limited interaction evidence, not a frozen-candidate full-suite or GUI qualification. The downloaded archive's SHA-256 matched the official HTTPS checksum list; this run did not newly verify its PGP signature.