[READY FOR RELEASE DECISION] fix(security): harden firmware confirmation paths for RC17#317
Merged
Merged
Conversation
BitHighlander
marked this pull request as ready for review
July 23, 2026 18:15
13 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Important
RC17 has cleared current-head CI and the physical-device smoke gate. It is ready for an explicit release-owner GO. The generated Python report is the authoritative exhaustive screen and boundary review; no additional screen-by-screen physical checklist is required.
Summary
Prepare the 7.15.0 RC17 candidate with security hardening across signing-memory safety, exact display/signature binding, blind-signing policy enforcement, Hive review, authenticator mutations, EIP-712 parsing, Tendermint-family signing, legacy Uniswap V2 clear-signing, and Osmosis signing.
The qualified firmware code installed on the physical device is
f746c52b2c0e5584fde9df04471eeb36ebbbf03b. The current PR head isa86903bbce1e6dc6a6c22d98236a73b1362e990b; every commit after the qualified firmware code is documentation-only physical evidence or planning material and does not change the RC17 binary.The generalized Cosmos/Tendermint
SIGN_MODE_DIRECTplan is explicitly future work and does not expand RC17 scope.Remediation status
All three audit passes are remediated. The final Osmosis fixes:
UINT64_MAXfor nativeuosmoThe earlier remediation sets remain intact: renderer-aware Hive
custom_json; mainnet/canonical/factory-bound Uniswap recognition and LP display; checked uint256 formatting; fail-closed authenticator/TOTP mutations; exact-length message and memo review; Binance signer memory safety; AdvancedMode enforcement; canonical EIP-712; Cosmos IBC destination review; and protocol-bound Tendermint ACKs.Full rationale is in
docs/security/7.15.0-rc17-hardening.md.Automated verification — green
KK_ZCASH_PRIVACY=OFF): 303/303kktech/firmware:v15publish-emulatorjob skippedThe Python report is the exhaustive evidence for confirmation screens, maximum-length paging, rejection paths, signing flows, and per-screen behavior. These cases are not repeated as a manual physical release ceremony.
Physical smoke — complete
The connected KeepKey reported firmware
7.15.0, variantKeepKey, and the exact qualified candidate revision. Requests used the repository's disposable public QA address, were signed locally through Vault, and were not broadcast.MsgSendtransactions usinguosmoanduatomsigned and produced different signatures.This satisfies the physical gate: real-device boot/transport, address/signing completion, cancellation/no-signature behavior, highest-risk renderer/memory stress, and visual sanity against the settled report.
Remaining release gate
The only remaining gate is the release owner's explicit GO decision. The PR remains draft, and it must not be merged, tagged, signed, or published until that decision is made.