Skip to content

release: 7.14.3 bitcoin-only audited candidate - #475

Open
BitHighlander wants to merge 1 commit into
review/7.14.2-pr458-currentfrom
release/7.14.3-bitcoin-only
Open

release: 7.14.3 bitcoin-only audited candidate#475
BitHighlander wants to merge 1 commit into
review/7.14.2-pr458-currentfrom
release/7.14.3-bitcoin-only

Conversation

@BitHighlander

@BitHighlander BitHighlander commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

Review identity

This is the canonical upstream review of the exact fork-audited and exact-head-green 7.14.3 Bitcoin-only candidate.

Item Exact identity
Base review/7.14.2-pr458-current @ 3df4038f48a5c8d2656d71749e7f40a989f979c2
Candidate release/7.14.3-bitcoin-only @ abe29d1288638867dc64dfe04219b89f7a593133
History One squashed release commit
Firmware surface 117 files, +6,600 / -733
Fork audit PR #627
Fork exact-head CI Fully green

The immutable canonical review base is intentional. The active 7.14.2 release branch moved after this audit was frozen, and current develop already contains the earlier 7.15 merge and later work. Retargeting either moving branch would change the reviewed bytes and invalidate the exact line ledger.

Canonical dependency pins

  • keepkey/trezor-firmware @ cdc05bebe9e6989cf711e1b5bea6324fd09f848e
  • keepkey/device-protocol @ 8545cd5b615f5832374afbf06387a3f28869285e
  • keepkey/python-keepkey @ 9c3982035664dbec44c6d1d60db6edb9fa59713c
  • all committed submodule URLs point to canonical upstream repositories

Review gates

  • Exact-head fork and canonical upstream CI are fully green.
  • Complete the 276 commit-pinned firmware and dependency line checks posted below.
  • Link every finding to a fix or explicit technical disposition.
  • Obtain a fresh exact-head automated review and human approval.
  • Complete RC1 physical Dice/setup, signing, product-boundary, and upgrade/downgrade testing.
  • Merge canonical device-protocol webusb-friendly labelling #112 and python-keepkey docs: add note about Cosmos paths #197; repin and rerun exact-head CI if either merge object changes.

Do not merge, tag, sign, publish, or release from this PR until every applicable gate is closed.

Squash the audited 7.14.3 delta onto the immutable 7.14.2 review base: Bitcoin-only product boundaries, Taproot signing, Dice entropy and RNG health, storage compatibility, disclosure and signing fixes, dependency pins, tests, and release evidence gates.
@BitHighlander

Copy link
Copy Markdown
Collaborator Author

7.14.3 line audit — firmware delta

Exact range: 3df4038f48a5c8d2656d71749e7f40a989f979c2abe29d1288638867dc64dfe04219b89f7a593133. Every link is commit-pinned.

Checkbox rule: mark a file complete only after reviewing every listed base and candidate range, including removed/replaced base lines. Findings must cite the surface, path, range, and exact head. Generated files and tests are reviewable evidence, not substitutes for reviewing runtime code.

Changed files represented in this checklist: 117.

7143-BTC — Bitcoin, Taproot, signing and exact disclosure

7143-CI — CI, release provenance, artifacts and failure propagation

7143-DEP — dependency identity and build integration

7143-DOC — security contract and operator documentation

7143-ENT — Dice, RNG, setup, storage and secret lifecycle

7143-PROD — Bitcoin-only product boundary and link surface

7143-REG — cross-chain and regression validation

7143-REG — cross-chain, parser, UI and session hardening

@BitHighlander

Copy link
Copy Markdown
Collaborator Author

7.14.3 line audit — trezor-crypto dependency

Exact range: 03d8a55a832fb61bb89477ef7239a80ecb367080cdc05bebe9e6989cf711e1b5bea6324fd09f848e. Every link is commit-pinned.

Checkbox rule: mark a file complete only after reviewing every listed base and candidate range, including removed/replaced base lines. Findings must cite the surface, path, range, and exact head. Generated files and tests are reviewable evidence, not substitutes for reviewing runtime code.

Changed files represented in this checklist: 57.

DEP-CRYPTO-BTC — secp256k1, Schnorr and Taproot primitives

DEP-CRYPTO-CORE — shared hashes, encodings and build surface

DEP-CRYPTO-ED — Ed25519 API and callers

DEP-CRYPTO-TEST — dependency tests and vectors

DEP-CRYPTO-ZEC — Pallas, RedPallas and Orchard primitives

@BitHighlander

Copy link
Copy Markdown
Collaborator Author

7.14.3 line audit — device-protocol dependency

Exact range: f2c3c005ad824df11aec9592a8b62066323ba2828545cd5b615f5832374afbf06387a3f28869285e. Every link is commit-pinned.

Checkbox rule: mark a file complete only after reviewing every listed base and candidate range, including removed/replaced base lines. Findings must cite the surface, path, range, and exact head. Generated files and tests are reviewable evidence, not substitutes for reviewing runtime code.

Changed files represented in this checklist: 21.

DEP-DP-BOUNDS — nanopb capacity and allocation bounds

DEP-DP-GEN — generators, documentation and repository wiring

DEP-DP-SCHEMA — protobuf message and wire-ID definitions

@BitHighlander

Copy link
Copy Markdown
Collaborator Author

7.14.3 line audit — Python companion dependency

Exact range: 92e8745e56985a05049a0f458226a29f94ca35329c3982035664dbec44c6d1d60db6edb9fa59713c. Every link is commit-pinned.

Checkbox rule: mark a file complete only after reviewing every listed base and candidate range, including removed/replaced base lines. Findings must cite the surface, path, range, and exact head. Generated files and tests are reviewable evidence, not substitutes for reviewing runtime code.

Changed files represented in this checklist: 81.

DEP-PYK-CI — companion CI, catalogs and generation gates

  • .github/workflows/ci.yml — base: base: L3-L10, L16-L18, L50-L53, L59-L67, L83, L102-L117, L123-L124, L129, L176-L181, L186; candidate: candidate: L3-L12, L18-L31, L42-L43, L52-L76, L87-L96, L102-L114, L120-L162, L169, L174, L179, L185, L190-L263, L269-L270, L275, L322-L762, L767
  • .github/workflows/copilot-review.yml — base: base: L4; candidate: candidate: L4-L7, L12
  • scripts/generate-test-report.py — base: base: L75, L177-L180, L190-L228, L243, L259, L271-L293, L301, L322, L330, L336, L341-L347, L354-L358, L367-L369, L377-L379, L394, L423-L434, L461, L546-L547, L669-L693, L698-L699, L707-L708, L715-L717, L752-L753, L776-L777, L822-L826, L844-L846, L891-L899, L904-L906, L923-L927, L932-L934, L942, L958-L960, L974-L976, L981, L988, L1004, L1012, L1029-L1032, L1040, L1047-L1056, L1083-L1197, L1218, L1225, L1231, L1237, L1243, L1255-L1290, L1295-L1324, L1361-L1370, L1377-L1392, L1405-L1407, L1416-L1420, L1428-L1432, L1463-L1472, L1477, L1483-L1485, L1513-L1517, L1548, L1559-L1567; candidate: candidate: L15-L29, L90, L156-L169, L206-L234, L243-L346, L359-L374, L385-L390, L396-L406, L422-L520, L541, L549, L555, L560-L576, L583-L587, L596-L598, L606-L608, L623, L630-L644, L667, L697, L782-L787, L810-L898, L998-L1057, L1062-L1067, L1075-L1076, L1083-L1085, L1120-L1122, L1131-L1209, L1224-L1225, L1253-L1312, L1330-L1341, L1359-L1381, L1426-L1447, L1452-L1454, L1469-L1886, L1891-L1899, L1907, L1923-L1927, L1941-L2065, L2070, L2077, L2093, L2101, L2118-L2160, L2166, L2173-L2320, L2347, L2368, L2375, L2381, L2387, L2393, L2400-L3069, L3074-L3113, L3145, L3151-L3225, L3244-L3248, L3257-L3261, L3269-L3273, L3278-L3305, L3332-L3341, L3346, L3352-L3355, L3362-L3368, L3390-L3402, L3433, L3443-L3455

DEP-PYK-DOC — packaging, fixtures and documentation

DEP-PYK-LIB — host API, protobuf bindings and transaction logic

  • keepkeylib/clearsign_abi.py — base: —; candidate: candidate: L1-L139
  • keepkeylib/clearsign_catalog.py — base: —; candidate: candidate: L1-L1009
  • keepkeylib/client.py — base: base: L993-L996, L1001, L1136-L1145, L1317, L1691-L1694, L1789-L1790, L1809-L1815, L1833, L1868, L1878-L1891; candidate: candidate: L52, L63, L465-L484, L748-L780, L809-L867, L1107-L1140, L1145-L1146, L1281-L1310, L1482-L1486, L1639-L1641, L1684-L1686, L1866-L1880, L1975-L2010, L2026-L2039, L2052-L2069, L2075-L2086, L2107-L2110, L2117-L2184, L2190-L2204, L2212-L2309
  • keepkeylib/debuglink.py — base: —; candidate: candidate: L90-L93, L134-L140
  • keepkeylib/eip712_stream.py — base: —; candidate: candidate: L1-L308
  • keepkeylib/eth/ethereum_tokens.py — base: base: L47; candidate: candidate: L47-L67
  • keepkeylib/eth/token_policy.py — base: —; candidate: candidate: L1-L137
  • keepkeylib/eth/uniswap_tokens.py — base: base: L31; candidate: candidate: L30-L52
  • keepkeylib/hive.py — base: —; candidate: candidate: L1-L87
  • keepkeylib/mapping.py — base: base: L100; candidate: candidate: L16, L26-L29, L105-L129
  • keepkeylib/messages_ethereum_pb2.py — base: base: L23, L469-L470, L514-L515, L552-L553, L597-L598, L656-L657, L715-L716; candidate: candidate: L23, L29-L74, L482-L554, L588-L589, L633-L634, L671-L672, L716-L717, L775-L776, L834-L1102, L1110, L1117-L1121, L1173-L1179, L1222-L1272
  • keepkeylib/messages_hive_pb2.py — base: —; candidate: candidate: L1-L886
  • keepkeylib/messages_pb2.py — base: base: L24, L347-L779, L785-L786, L962, L1217, L1254-L1255, L1299-L1300, L1323-L1324, L1382-L1383, L1413-L1414, L1472-L1473, L1503-L1504, L1541-L1542, L1579-L1580, L1603-L1604, L1634-L1635, L1665-L1666, L1689-L1690, L1713-L1714, L1744-L1745, L1775-L1776, L1806-L1807, L1865-L1866, L1903-L1904, L1962-L1963, L1993-L1994, L2017-L2018, L2097-L2098, L2184-L2185, L2208-L2209, L2239-L2240, L2333-L2334, L2357-L2358, L2388-L2389, L2426-L2427, L2471-L2472, L2523-L2524, L2575-L2576, L2613-L2614, L2672-L2673, L2717-L2718, L2769-L2770, L2807-L2808, L2880-L2881, L2911-L2912, L2949-L2950, L2980-L2981, L3067-L3068, L3112-L3113, L3143-L3144, L3174-L3175, L3226-L3227, L3271-L3272, L3302-L3303, L3347-L3348, L3392-L3393, L3423-L3424, L3461-L3462, L3492-L3493, L3516-L3517, L3540-L3541, L3578-L3579, L3609-L3610, L3633-L3634, L3755-L3756, L3779-L3780, L3824-L3825, L3848-L3849, L3879-L3880, L4787-L4788; candidate: candidate: L24, L347-L907, L913-L914, L997-L1002, L1096-L1100, L1116-L1137, L1364-L1370, L1384, L1421-L1422, L1466-L1467, L1490-L1491, L1549-L1550, L1580-L1581, L1639-L1640, L1670-L1671, L1708-L1709, L1746-L1747, L1770-L1771, L1801-L1802, L1832-L1833, L1856-L1857, L1880-L1881, L1911-L1912, L1942-L1943, L1973-L1974, L2032-L2033, L2070-L2071, L2129-L2130, L2160-L2161, L2184-L2185, L2264-L2265, L2339-L2345, L2358-L2359, L2382-L2383, L2413-L2414, L2507-L2508, L2531-L2532, L2562-L2563, L2600-L2601, L2645-L2646, L2697-L2698, L2749-L2750, L2787-L2788, L2846-L2847, L2891-L2892, L2943-L2944, L2981-L2982, L3054-L3055, L3085-L3086, L3123-L3124, L3154-L3155, L3241-L3242, L3286-L3287, L3317-L3318, L3348-L3349, L3400-L3401, L3445-L3446, L3476-L3477, L3521-L3522, L3566-L3567, L3597-L3598, L3635-L3636, L3666-L3667, L3690-L3691, L3714-L3715, L3752-L3753, L3771-L3777, L3790-L3791, L3814-L3815, L3924-L3930, L3943-L3944, L3967-L3968, L4012-L4013, L4036-L4037, L4067-L4192, L4282-L4285, L4758-L4785, L4945-L4956, L5143-L5152, L5183-L5226
  • keepkeylib/messages_ripple_pb2.py — base: base: L22, L159, L203-L204, L241-L242; candidate: candidate: L22, L146-L152, L166, L210-L211, L248-L249
  • keepkeylib/messages_solana_pb2.py — base: base: L22, L145, L196-L197, L227-L228, L279-L280, L317-L318, L383-L384, L421-L422; candidate: candidate: L22, L132-L145, L159, L198-L246, L259-L260, L290-L291, L342-L343, L380-L381, L446-L447, L484-L485
  • keepkeylib/messages_thorchain_pb2.py — base: base: L23, L303, L354-L355, L392-L393; candidate: candidate: L23, L290-L296, L310, L361-L362, L399-L400
  • keepkeylib/messages_zcash_pb2.py — base: base: L22, L134, L153, L274-L275, L305-L306, L343-L344, L388-L389, L433-L434, L454, L485-L492, L498-L500, L505, L523-L524, L549-L571, L588-L589, L619-L620, L630, L684-L689; candidate: candidate: L6, L23-L50, L160-L209, L215-L221, L235, L344-L357, L370-L371, L401-L402, L439-L440, L484-L485, L517-L523, L536-L582, L602, L621-L648, L661-L668, L674-L676, L681, L699-L734, L757-L758, L775-L776, L794-L800, L813-L817, L824-L830, L875-L881, L889-L901
  • keepkeylib/signed_metadata.py — base: base: L131, L140, L145, L154-L158, L189, L198, L232-L265, L283-L286; candidate: candidate: L23-L61, L170, L179-L182, L187-L193, L202-L209, L240-L241, L250-L252, L268-L381, L399-L433, L451-L457, L492-L666
  • keepkeylib/transport_udp.py — base: base: L60; candidate: candidate: L5, L10-L33, L59-L60, L81-L86, L93-L105
  • keepkeylib/types_pb2.py — base: base: L24, L397, L423-L424; candidate: candidate: L24, L393-L396, L401, L427-L428, L504
  • keepkeylib/zcash.py — base: —; candidate: candidate: L1-L44

DEP-PYK-TEST — device integration, vectors and report coverage

@BitHighlander

BitHighlander commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator Author

Audit index — 7.14.3 Bitcoin-only

This is the durable top-level ledger. Detailed checkboxes live in the commit-pinned line maps below. A checkbox means every listed base and candidate range in that file was reviewed; findings must cite the exact range and head.

Immutable review identity

Item Exact identity
Base review/7.14.2-pr458-current @ 3df4038f48a5c8d2656d71749e7f40a989f979c2
Candidate release/7.14.3-bitcoin-only @ abe29d1288638867dc64dfe04219b89f7a593133
History shape one squashed release commit on the immutable base
Pre-squash preservation preserve/release-7.14.3-pre-upstream-squash-20260828 @ c636edfa
Firmware diff 117 files, +6,600 / −733

Canonical dependency identity

Dependency Previous release pin Candidate pin Internal line map
keepkey/trezor-firmware 03d8a55a cdc05beb 57 files / checkboxes
keepkey/device-protocol f2c3c005 8545cd5b 21 files / checkboxes
keepkey/python-keepkey 92e8745e 9c398203 81 files / checkboxes
Python's canonical DP companion baseline PR #112 @ 27d3fa1f audited in its upstream PR; not compiled directly by this firmware

The direct firmware DP pin intentionally remains 8545cd5b: compiling PR #112 directly in this release produces unsupported nanopb callback fields. Every committed submodule URL is canonical upstream.

Line-addressable audit surfaces

Gates

  • All 276 line-map checkboxes have an identified reviewer and are complete.
  • Findings are linked to fixes or explicit technical dispositions.
  • Canonical upstream exact-head CI run 33203809899 is fully green for abe29d12; fork preflight run 33201418360 is also green.
  • Fresh exact-head Copilot review converges after the squash.
  • RC1 physical Dice/setup, signing, product-boundary and upgrade/downgrade testing is complete.
  • Canonical DP/Python human reviews and merges are complete; firmware is repinned if their merge object changes.

Head-change log

Old → new Surfaces Disposition
c636edfaabe29d12 all firmware audit identities History-only squash; git diff confirms the firmware trees are byte-identical. Old head preserved. All line links regenerated for the new commit; exact-head CI and Copilot review invalidated/restarted.

No merge, tag, signing, publishing, release, or physical-test claim is made by this upstream audit vehicle.

@BitHighlander
BitHighlander changed the base branch from release/7.14.2-rc31 to review/7.14.2-pr458-current August 28, 2026 19:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant