FD
← All projectsFoundation

Passport firmware

Firmware for Foundation Passport Bitcoin signing devices.

BitcoinHardware walletsNormal
Repository coverage

133 commits in the local evidence base

Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.

43security candidates46second-pass queue123AI analyses
33commits · 30 days
53commits · 60 days
80commits · 180 days
133commits · 365 days
Backfill bands
Aug 5 → Feb 612 seen0 candidatesComplete
Feb 6 → Jun 659 seen3 candidatesComplete
Jun 6 → Jul 64 seen0 candidatesComplete
Jul 6 → Aug 52 seen0 candidatesComplete
Commit communication

Does the history explain itself?

Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.

54/100 average clarity
6Strong · 80–100
38Adequate · 60–79
77Thin · 40–59
12Opaque · 0–39
4security candidates with opaque commit messaging
Read the scoring rubric →
Developer activity

Who is changing the project?

Public Git author strings; identities are not independently verified.

DeveloperCommitsCandidatesAnalyzedHigh riskMessage avg.
Matt Gleason651457351
Jacksper1314714367
Jack331731150
Jean-Pierre De Jesus DIAZ828061
mjg-foundation525065
Ken Carpenter313048
dependabot[bot]505076
Analysis record

Published AI watches

Last scanned 0 minutes ago

Informational 24 AI analysisMessage 73 · Adequate
FD FoundationPassport firmware BitcoinHardware wallets

Merge pull request #665 from Foundation-Devices/casa-crypto-account-export

This commit adds a new feature to Foundation's Passport hardware wallet that exports two cryptographic public keys for Casa wallet registration: the master extended public key and a separate Casa-specific key derived at path m/45'. The key…

New key-export surface: two public keys (master + m/45' derived) are now exported togetherSensitive material is public-key/chain-code only; no private keys are exportedExport channels remain QR and microSD, unchanged from prior Casa export behavior
5e499107by mjg-foundation+291−315 files
No security note in commit
Low 25 AI analysisMessage 73 · Adequate
FD FoundationPassport firmware BitcoinHardware wallets

Merge pull request #669 from Foundation-Devices/add-native-unchained-connect-wallet

This commit adds support for the Unchained wallet to the Passport hardware wallet. Most of the change is normal feature code, but it also introduces a new way to feed already-encoded data into the QR encoder and tightens up the encoder so …

New unsafe FFI function `ur_encoder_start_raw` added with documented safety preconditionsUR type string is validated (length, charset, UTF-8) before use in encoderEncoder now tracks a `started` flag and returns empty output if not started, reducing use-after-free/misuse risk
26bd36d5by mjg-foundation+426−1812 files
No security note in commit
Moderate 55 AI analysisMessage 78 · Adequate
FD FoundationPassport firmware BitcoinHardware wallets

Merge pull request #655 from Foundation-Devices/sft-7320-entropy-hardening

This firmware update hardens the way Passport generates random numbers. Previously, a failing or stuck hardware random-number generator could silently produce weak or repeated values, which is dangerous for creating secret keys. The patch …

Fail-closed RNG error handling: persistent seed/clock errors now trigger a fatal handler instead of returning potentially weak valuesST-recommended seed-error recovery (RM0433 section 34.3.7): clear SEIS and flush 12 discard words, with bounded retry attemptsDuplicate and zero-value rejection in rng_try_sample to avoid returning stuck or invalid RNG output
0f1a5325by mjg-foundation+150−379 files
Vendor flagged security relevance
High 71 AI analysisMessage 83 · Strong
FD FoundationPassport firmware BitcoinHardware wallets

Merge pull request #675 from Foundation-Devices/fix/verify-change-before-review

This firmware update moves the verification of Bitcoin 'change' addresses to happen before the user reviews the transaction on screen. Previously, the device checked whether change outputs truly belonged to the wallet only after the user h…

Reorders security-critical validation to occur before user approvalValidates change-output ownership before the review screen hides those outputsPrevents transaction signing if change derivation does not match the PSBT
1fea63c8by Jacksper13+174−454 files
Vendor flagged security relevance
Low 29 AI analysisMessage 83 · Strong
FD FoundationPassport firmware BitcoinHardware wallets

SFT-8098: skip change verification for transactions without change

This commit changes how the Passport hardware wallet reviews Bitcoin transactions that have no 'change' output. Previously, the wallet would always run a change-verification step that opens the secure key store, even when there was no chan…

Change reduces unnecessary access to the key store during transaction reviewNo cryptographic check is removed for transactions that actually contain changeUI label changed to more accurately describe the operation being performed
3df93748by Jacksper13+36−112 files
No security note in commit
Moderate 59 AI analysisMessage 83 · Strong
FD FoundationPassport firmware BitcoinHardware wallets

SFT-8098: complete change verification before transaction review

This commit moves a safety check earlier in the process of approving a Bitcoin transaction on the Passport hardware wallet. Previously, the wallet verified that 'change' outputs (money going back to your own wallet) truly belonged to you o…

Change-address verification moved from post-approval signing stage to pre-review stagePSBT change output ownership now proved before user is shown transaction detailsSensitive key derivation context closed before transaction review is displayed
fb88001cby Jacksper13+150−464 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 58 · Thin
FD FoundationPassport firmware BitcoinHardware wallets

Merge pull request #673 from Foundation-Devices/SFT-7945-add-pytest-to-devshell

This commit is a routine development tooling and cleanup change. It adds the Pytest testing framework to the project's Nix development shell, fixes a test runner path, adds a GitHub Actions workflow to run simulator tests automatically, an…

d8ee1164by mjg-foundation+101−25825 files
No security note in commit
Informational 18 AI analysisMessage 73 · Adequate
FD FoundationPassport firmware BitcoinHardware wallets

Merge pull request #648 from Foundation-Devices/dependabot-host-tooling-hygiene

This commit updates the Python Pillow image-processing library used in host-side developer tooling from version 8.x to 12.3.x and requires Python 3.10 or newer. Pillow 8.x is known to have many publicly disclosed security vulnerabilities, …

Dependency version bump of a library with known historical vulnerabilities (Pillow 8.x)Constraint now requires Python 3.10+ alongside the newer Pillow major versionChange is limited to host tooling files (pyproject.toml, setup.py, requirements-optional.txt, tox.ini, DEVELOPMENT.md)
d6c05830by Jacksper13+6−55 files
No security note in commit
Informational 15 AI analysisMessage 58 · Thin
FD FoundationPassport firmware BitcoinHardware wallets

Merge pull request #649 from Foundation-Devices/bitcoin-safe-wallet-flow

This commit adds support for a new Bitcoin software wallet called 'Bitcoin Safe' to the Passport hardware wallet firmware. It is a straightforward feature addition that registers the wallet in the firmware's list of supported software wall…

9f1e36b0by Jacksper13+27−03 files
No security note in commit
Moderate 62 AI analysisMessage 58 · Thin
FD FoundationPassport firmware BitcoinHardware wallets

Merge pull request #653 from Foundation-Devices/show-op-return-output-amount

This update changes how the Passport hardware wallet displays Bitcoin transaction outputs that carry data (OP_RETURN outputs). Previously, only the embedded message was shown. Now the device also shows the amount of bitcoin assigned to tha…

UI spoofing hardening: user-controlled OP_RETURN data is now escaped before renderingNew display of OP_RETURN output amount reduces risk of hidden value leakageUnit test includes an attacker-controlled message simulating fake Amount/Destination headings
433c4a20by Jacksper13+79−33 files
No security note in commit
Moderate 59 AI analysisMessage 78 · Adequate
FD FoundationPassport firmware BitcoinHardware wallets

Merge pull request #660 from Foundation-Devices/fix/legacy-settings-overflow

This commit fixes a bug in how the Passport hardware wallet saves its settings to internal flash memory. Previously, the code checked whether the settings data was too large only after it had already picked and erased a flash storage slot.…

Buffer size validation moved before flash write/erase operationsReplaced broken 'assert false' crash path with explicit ValueErrorAdded unit test for oversized settings rejection
180e183dby Jacksper13+34−113 files
No security note in commit
Low 33 AI analysisMessage 78 · Adequate
FD FoundationPassport firmware BitcoinHardware wallets

tooling: constrain tox Pillow dependency (SFT-7281)

This commit tightens a software dependency used only in testing/development tooling. It prevents an automated test environment from installing old, known-vulnerable versions of the Pillow image library when running under Python 3.10. The c…

Dependency constraint added to block known-vulnerable Pillow versionsCommit message acknowledges prior path could install an older vulnerable releaseChange is in Trezor external module tooling, not Passport firmware runtime
56799183by Jack+2−12 files
Vendor flagged security relevance
High 73 AI analysisMessage 58 · Thin
FD FoundationPassport firmware BitcoinHardware wallets

Merge pull request #662 from Foundation-Devices/fix/unverified-psbt-fees

This firmware update fixes a security issue in the Passport hardware wallet's handling of Bitcoin transaction fees. Previously, when a transaction file (PSBT) only provided a claimed input amount without the full previous transaction to pr…

UI now displays 'Unverified' instead of a numeric network fee when input amounts cannot be independently verifiedNew assertion prevents witness/non-witness UTXO value or scriptPubKey mismatch for the same inputHistory-cache amount updates are deferred until after cryptographic proof of input ownership is completed
7b64e920by Jacksper13+336−627 files
Vendor flagged security relevance
Moderate 66 AI analysisMessage 58 · Thin
FD FoundationPassport firmware BitcoinHardware wallets

Merge pull request #661 from Foundation-Devices/fix/seedqr-validation

This update tightens the checks on SeedQR codes, which are QR codes that encode a wallet's backup seed phrase as numbers. Before, the decoder might accept invalid or oddly-sized numeric strings and either crash or produce an incorrect seed…

Input validation added to seed-import pathOut-of-range BIP-39 word index now rejected explicitlyNon-digit characters rejected before integer conversion
2c41d1c5by Jacksper13+59−63 files
No security note in commit
Informational 18 AI analysisMessage 28 · Opaque
FD FoundationPassport firmware BitcoinHardware wallets

fixed excess delete call

This tiny change removes two variables ('pu' and 'skp') from a Python 'del' cleanup statement in the code that signs Bitcoin transactions. The commit message says it fixes an 'excess delete call.' In Python, deleting a name that does not e…

Change is in a sensitive operation: PSBT signingOriginal code could raise NameError and crash the signing taskNo explicit security claim in commit message or diff
1b2efc8fby Matt Gleason+1−11 file
No security note in commit
Informational 15 AI analysisMessage 18 · Opaque
FD FoundationPassport firmware BitcoinHardware wallets

fixed format

This commit adds a single blank line between two test functions to fix code formatting. It makes no functional changes to the firmware or its tests.

52ade0a1by Matt Gleason+1−01 file
No security note in commit
Moderate 59 AI analysisMessage 58 · Thin
FD FoundationPassport firmware BitcoinHardware wallets

Merge pull request #672 from Foundation-Devices/fix/validate-local-multisig-xpub

This update fixes a validation gap when importing multisig wallets into the Passport hardware wallet. Previously, the device only checked that the public key matched; now it also checks the chain code. Without this check, a tampered extend…

Incomplete cryptographic input validation (public key only, not full xpub)Potential acceptance of tampered extended public keys in multisig wallet importFix adds chain_code equality check alongside existing public_key equality check
b1756906by Jacksper13+95−24 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 60 · Adequate
FD FoundationPassport firmware BitcoinHardware wallets

SFT-7945: test suite working in devshell, removed unused translation

This commit is a routine cleanup and test-infrastructure change. It removes an unused translation system (translation files, imports, and a test), updates linting rules to no longer exclude the now-removed translation folder, and fixes the…

d8353514by Matt Gleason+25−21420 files
No security note in commit
Low 36 AI analysisMessage 45 · Thin
FD FoundationPassport firmware BitcoinHardware wallets

Integrate PSBT fee and amount validation

This commit adds a test fixture flag called witness_utxo to a fake PSBT input object used in unit tests, and documents a changelog entry about marking network fees as 'unverified' when a PSBT input's UTXO data cannot be verified. The actua…

PSBT fee/amount validationunverifiable inputs flagged as unverifiedwitness UTXO handling
409137c9by Jack+2−02 files
Vendor flagged security relevance
Moderate 60 AI analysisMessage 45 · Thin
FD FoundationPassport firmware BitcoinHardware wallets

Reuse sensitive values during PSBT validation

This firmware update changes how Passport validates Bitcoin transaction files (PSBTs) before signing. It makes two main improvements: it reuses the wallet's secret seed for fewer key-derivation operations, and it verifies that the claimed …

Deferred and batched sensitive key derivation during PSBT validationAmount-cache update moved after ownership/key-path proofNew assertion to block re-signing already-signed non-multisig inputs
f88420bfby Jack+72−213 files
Vendor flagged security relevance
Repository ledger

Explore captured commits

Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.

Security candidateIntegrate PSBT fee and amount validationby Jack · 409137c9 · Aug 26, 2026 · 2 filesMessage 45 · ThinLow 36Details
Commit message · Jack

Integrate PSBT fee and amount validation

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundarysigning or wallet path
AI analysis · Low 36/100

This commit adds a test fixture flag called witness_utxo to a fake PSBT input object used in unit tests, and documents a changelog entry about marking network fees as 'unverified' when a PSBT input's UTXO data cannot be verified. The actual production code that performs this validation is not shown in the diff, so we can only see the test scaffolding and release-note mention. It likely relates to preventing a hardware wallet from trusting a transaction's claimed fee when the input amounts are not provable, which could stop a malicious co-signer or host from hiding or inflating fees.

Security candidateReuse sensitive values during PSBT validationby Jack · f88420bf · Aug 26, 2026 · 3 filesMessage 45 · ThinModerate 60Details
Commit message · Jack

Reuse sensitive values during PSBT validation

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundarysigning or wallet path
AI analysis · Moderate 60/100

This firmware update changes how Passport validates Bitcoin transaction files (PSBTs) before signing. It makes two main improvements: it reuses the wallet's secret seed for fewer key-derivation operations, and it verifies that the claimed input amounts are backed by real signing keys before trusting those amounts. The commit message and code comments suggest this closes a gap where a malicious or malformed PSBT could trick the device into recording an incorrect input amount in its history cache, which could later mislead the user about fees or balances. A second change also prevents re-signing a transaction that already has a signature, which could reduce certain replay or state-confusion risks.

Security candidateVerify owned PSBT inputs before fee reviewby Jack · b07dcee5 · Aug 26, 2026 · 3 filesMessage 55 · ThinHigh 73Details
Commit message · Jack

Verify owned PSBT inputs before fee review

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing boundarysigning or wallet path
AI analysis · High 73/100

This firmware update fixes a bug in the Passport hardware wallet's handling of Bitcoin transaction files (PSBTs). Previously, the wallet could be tricked into reviewing and displaying a transaction fee as verified even when an input the wallet appeared to own was actually controlled by a different key. The fix makes the device cryptographically prove it really owns each input before it tells the user the fee is trustworthy, helping prevent attackers from showing misleading fee amounts.

AI review queuedmultisig: validate complete local xpubby Jack · e712e425 · Aug 26, 2026 · 4 filesMessage 45 · ThinModerate 59Details
Commit message · Jack

multisig: validate complete local xpub

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
defensive validationsigning or wallet pathsecond-pass: near security thresholdsecond-pass: security-sensitive path
AI analysis · Moderate 59/100

This firmware update fixes a multisig wallet import check. Previously, the device only verified that the public key portion of an extended public key (xpub) matched what it expected; now it also verifies the chain code. A mismatched chain code could let a malicious or malformed xpub slip through validation, potentially causing the wallet to derive wrong or non-matching addresses and making backups or transaction coordination unreliable. The fix is accompanied by a new unit test that confirms a wrong chain code is rejected.

Security candidateMerge pull request #668 from Foundation-Devices/fix/refuse-untrusted-multisigby Jacksper13 · 9d043732 · Aug 26, 2026 · 5 filesMessage 73 · AdequateModerate 59Details
Commit message · Jacksper13

Merge pull request #668 from Foundation-Devices/fix/refuse-untrusted-multisig

Abort signing when a proposed multisig wallet is rejected

73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Links an issue, advisory, or supporting reference
Why it was queued
signing boundarysigning or wallet pathmerge-commit duplicate discount
AI analysis · Moderate 59/100

This update changes how Passport handles multisig wallet setups proposed by a transaction file (PSBT). Previously, if the user declined to import a proposed multisig configuration while using a temporary seed, the device would still sign the transaction and only warn that the config wouldn't be saved. Now it cancels signing instead. Also, when a temporary seed is active, the device now asks the user before using a PSBT-proposed multisig wallet rather than silently skipping that step. The goal is to prevent a user from accidentally signing a transaction with an untrusted or unexpected multisig wallet.

AI review queuedMerge pull request #666 from Foundation-Devices/fix/quirc-grid-boundsby Jacksper13 · bcb9c29e · Aug 26, 2026 · 7 filesMessage 58 · ThinModerate 60Details
Commit message · Jacksper13

Merge pull request #666 from Foundation-Devices/fix/quirc-grid-bounds

Reject oversized QR grids in quirc

58/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
parser or protocol pathmerge-commit duplicate discountsecond-pass: security-sensitive path
AI analysis · Moderate 60/100

This update hardens the QR-code scanner library (quirc) used in the Passport hardware wallet so it refuses to process impossibly large QR grids and no longer reads past the end of its internal buffer when a malformed QR code is presented. It also fixes an off-by-one bug in grid indexing. The changes are defensive: they prevent memory corruption and crashes when scanning deliberately crafted or corrupted QR codes, rather than changing normal wallet behavior.

Security candidateMerge pull request #663 from Foundation-Devices/fix/psbt-output-value-boundsby Jacksper13 · 75e19cfd · Aug 26, 2026 · 4 filesMessage 58 · ThinHigh 72Details
Commit message · Jacksper13

Merge pull request #663 from Foundation-Devices/fix/psbt-output-value-bounds

Reject invalid PSBT amounts

58/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Links an issue, advisory, or supporting reference! No meaningful explanatory body
Why it was queued
signing boundarydefensive validationsigning or wallet pathmerge-commit duplicate discount
AI analysis · High 72/100

This update tightens the checks on Bitcoin transaction amounts inside PSBT files handled by the Passport hardware wallet. Before, the firmware did not fully enforce Bitcoin's rule that no single output or input, and no running total, can exceed about 21 million bitcoins (MAX_MONEY). A malicious or buggy companion app could craft a PSBT with oversized, negative, or zero input amounts. The device might then compute a wrong fee or balance, which could trick a user into approving a transaction that sends more than intended, or that hides a large fee. The patch now rejects such PSBTs immediately.

Lower-prioritySFT-7613: added explanations to constantsby Matt Gleason · 1670b529 · Aug 25, 2026 · 1 fileMessage 45 · ThinTriage 0Details
Commit message · Matt Gleason

SFT-7613: added explanations to constants

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI review queuedfixed buffer extension issueby Matt Gleason · ac7bbecb · Aug 25, 2026 · 3 filesMessage 35 · OpaqueLow 35Details
Commit message · Matt Gleason

fixed buffer extension issue

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Low 35/100

This commit fixes a low-level programming bug in how the Passport hardware wallet builds a special data format (CBOR) when exporting a public key to the Unchained Capital service. The original code passed raw numbers to a buffer-extension function in a way that could produce incorrect byte sequences. The fix wraps those numbers as explicit byte arrays. The commit also contains unrelated cosmetic changes to the simulator's README and adds clipboard keybindings to the simulator's terminal window.

AI review queuedRequire fingerprint for Unchained exportby Jack · 3fc52d3b · Aug 20, 2026 · 1 fileMessage 45 · ThinLow 46Details
Commit message · Jack

Require fingerprint for Unchained export

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 46/100

This commit tightens how Passport retrieves the wallet's fingerprint when exporting data for the Unchained wallet. Previously, if the fingerprint setting was missing, the code would silently fall back to a value of 0. Now it requires the actual fingerprint to be present. This is a hardening change: a missing or corrupted fingerprint setting could have led to an incorrect or invalid export rather than a clearly wrong one, which could confuse wallet software or, in worst-case scenarios, affect how multisig addresses are derived.

AI review queuedHarden raw Unchained UR encodingby Jack · f75bfd37 · Aug 20, 2026 · 4 filesMessage 45 · ThinLow 42Details
Commit message · Jack

Harden raw Unchained UR encoding

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
defensive validationsigning or wallet pathparser or protocol pathsecond-pass: near security thresholdsecond-pass: security-sensitive path
AI analysis · Low 42/100

This commit hardens the firmware's QR-code encoder used for the Unchained wallet export. It adds a safety flag so that if an invalid export request is rejected, the device won't accidentally reuse or leak a previously encoded QR message. It also fixes a fingerprint byte-order bug and switches from one export format to another for microSD exports. The changes are defensive hardening rather than a clear fix for an active exploit.

AI review queuedAdd native Unchained wallet connectionby Jack · 18e872f9 · Aug 20, 2026 · 10 filesMessage 45 · ThinInformational 24Details
Commit message · Jack

Add native Unchained wallet connection

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathparser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 24/100

This commit adds support for connecting the Passport hardware wallet to the Unchained multisig service. It introduces a new way to pass already-encoded data into the QR/UR encoder, plus a new wallet definition and CBOR encoding helper. The changes are mostly additive feature code; there is no vendor statement that this fixes a security bug, and no independent security disclosure is referenced.

AI review queuedDocument and test multisig approval policyby Jack · 467818fc · Aug 17, 2026 · 2 filesMessage 55 · ThinLow 41Details
Commit message · Jack

Document and test multisig approval policy

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Low 41/100

This commit documents and tests a policy for approving multisignature wallets proposed by a PSBT (Partially Signed Bitcoin Transaction). The key functional change is that when a Passport device is using a temporary seed, it now requires explicit user confirmation before importing a multisig wallet proposed by a PSBT, and cancels signing if the user declines. The commit itself is mostly a changelog entry and unit tests; the actual security logic appears to have been implemented elsewhere.

Security candidateAbort signing when proposed multisig import failsby Jack · 30237ea8 · Aug 17, 2026 · 4 filesMessage 45 · ThinModerate 59Details
Commit message · Jack

Abort signing when proposed multisig import fails

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundarysigning or wallet path
AI analysis · Moderate 59/100

This firmware update changes how Passport handles Bitcoin transactions that come with a new multisig wallet configuration. Previously, if importing that proposed multisig config failed, the device would warn the user but still allow the transaction to be signed. Now it aborts signing instead. It also changes the default behavior so the device always asks before using a temporary multisig config rather than silently skipping the import. The commit does not describe this as a security fix, but the change removes a risky path where a transaction could be signed under an unapproved or failed wallet setup.

Lower-priorityRun quirc bounds tests in CIby Jack · 7600beee · Aug 13, 2026 · 3 filesMessage 55 · ThinTriage 0Details
Commit message · Jack

Run quirc bounds tests in CI

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI review queuedReject oversized quirc gridsby Jack · 1e6d945b · Aug 13, 2026 · 6 filesMessage 35 · OpaqueModerate 63Details
Commit message · Jack

Reject oversized quirc grids

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
parser or protocol pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Moderate 63/100

This commit adds safety checks to the QR-code scanning library (quirc) used in Passport firmware. It rejects QR grids that are larger than the standard maximum size (version 40, or 177×177 cells) before they can be processed. Without these checks, a malformed or oversized QR code could cause memory corruption or crashes. The commit also fixes an off-by-one bug in grid index validation and adds tests to verify the new limits.

AI review queuedSimplify Casa microSD pairing fileby Jack · 4ca74d48 · Aug 13, 2026 · 1 fileMessage 45 · ThinInformational 18Details
Commit message · Jack

Simplify Casa microSD pairing file

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 18/100

This commit removes several lines of informational text from the Casa wallet pairing file that Passport writes to a microSD card. The deleted text included the blockchain name, coin type, internal symbol, and a generic warning not to deposit funds unless the user's wallet is ready. The remaining file still contains the master extended public key, the Casa derivation extended public key, and the master key fingerprint. There is no code change that alters how keys are derived, stored, or transmitted, and no security vulnerability is visible in the diff.

AI review queuedExport both Casa keys to microSDby Jack · ad5d1343 · Aug 12, 2026 · 1 fileMessage 45 · ThinInformational 19Details
Commit message · Jack

Export both Casa keys to microSD

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100

This commit changes how the Passport hardware wallet exports information for the Casa wallet. Previously, only the master extended public key was written to a microSD card. Now, the file also includes the Casa-specific extended public key at derivation path m/45'. This is a feature enhancement to make Casa multisig setup easier, not a security fix. The change does not appear to introduce a vulnerability, but it does export additional key material to removable storage.

AI review queuedExport Casa pairing as a crypto-account QRby Jack · 72fd63cf · Aug 12, 2026 · 5 filesMessage 45 · ThinInformational 24Details
Commit message · Jack

Export Casa pairing as a crypto-account QR

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing or wallet pathparser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 24/100

This commit adds a new way for the Passport hardware wallet to export wallet pairing information to Casa, a Bitcoin custody service. Instead of exporting a single key, it now exports a 'crypto-account' QR code containing two related public keys: the wallet's root public key and a separate Casa-specific public key derived from path m/45'. The change is a feature addition; there is no direct evidence in the commit that it fixes a security vulnerability, but it does change what key material is exposed during pairing and how it is encoded.

Security candidateValidate PSBT input amountsby Jack · c893f0e0 · Aug 11, 2026 · 4 filesMessage 35 · OpaqueModerate 59Details
Commit message · Jack

Validate PSBT input amounts

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body! Opaque security-relevant change
Why it was queued
signing boundarydefensive validationsigning or wallet path
AI analysis · Moderate 59/100

This firmware update tightens checks on Bitcoin transaction amounts inside PSBT files. Before the patch, input amounts were only checked with a simple 'greater than zero' assertion, and the running total of input value was not capped. A malicious or malformed PSBT could use negative, zero, or absurdly large input amounts to make the wallet miscalculate the transaction fee or bypass sanity checks. The patch rejects any input amount outside the valid Bitcoin range and stops the total from exceeding Bitcoin's maximum money limit, matching protections that already existed for outputs.

Security candidateReject invalid PSBT output amountsby Jack · 849d6de7 · Aug 11, 2026 · 4 filesMessage 45 · ThinModerate 59Details
Commit message · Jack

Reject invalid PSBT output amounts

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundarydefensive validationsigning or wallet path
AI analysis · Moderate 59/100

This commit adds a safety check to the Passport hardware wallet's Bitcoin transaction parser. Before signing a transaction, the device now rejects any output amount that is negative, larger than the total possible Bitcoin supply (about 21 million BTC), or that would make the whole transaction output more than that total. Without this check, a malicious or malformed transaction could try to use impossible amounts, which might confuse the user or lead the wallet to compute incorrect balances or fees.

Security candidateExercise parsed owned PSBT inputsby Jack · 36e445ba · Aug 10, 2026 · 1 fileMessage 45 · ThinInformational 12Details
Commit message · Jack

Exercise parsed owned PSBT inputs

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundarysigning or wallet path
AI analysis · Informational 12/100

This commit updates a single unit test file for Bitcoin PSBT (Partially Signed Bitcoin Transaction) fee handling. It replaces a fake/mock input object with a real parsed PSBT input that includes a BIP32 derivation path, so the test exercises more of the actual production parsing code. There is no change to firmware behavior, no bug fix, and no security patch in the shipped code.

AI review queuedPreserve SegWit input classificationby Jack · cd0844dc · Aug 10, 2026 · 2 filesMessage 35 · OpaqueModerate 59Details
Commit message · Jack

Preserve SegWit input classification

35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
signing or wallet pathsecond-pass: opaque commit messagesecond-pass: security-sensitive path
AI analysis · Moderate 59/100

This firmware update changes how Passport classifies SegWit Bitcoin transaction inputs. Previously, the device tried to detect SegWit by inspecting the address type and redeem script, and would reject a PSBT that supplied a witness UTXO for what it thought was a non-SegWit input. Now, if a PSBT includes a witness UTXO, the input is marked SegWit immediately. The patch removes several safety checks, which could allow a malicious or malformed PSBT to bypass fee verification or signature checks. The commit message does not describe a security fix, but the change is in security-relevant code.

Security candidateAvoid displaying unverified PSBT feesby Jack · fff747b5 · Aug 10, 2026 · 4 filesMessage 45 · ThinModerate 66Details
Commit message · Jack

Avoid displaying unverified PSBT fees

45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundarysigning or wallet path
AI analysis · Moderate 66/100

This update changes how the Passport hardware wallet handles Bitcoin transaction fees shown during signing. Previously, the wallet could display a network fee even when it could not independently verify the input amounts supplied by another wallet. Now it marks such fees as 'Unverified' and skips fee-based warnings that could mislead the user. It also adds cross-checks when a transaction input provides both witness and non-witness data, ensuring they agree before trusting the amount.

Security candidateExpand malformed SeedQR test coverageby Jack · 839b6f59 · Aug 10, 2026 · 1 fileMessage 55 · ThinInformational 15Details
Commit message · Jack

Expand malformed SeedQR test coverage

55/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
seed or entropy path
AI analysis · Informational 15/100

This commit only adds more test cases to an existing unit test file for SeedQR decoding. It does not change any production firmware code. The new tests check that the decoder correctly rejects additional malformed inputs, such as an empty string, an oversized string, and strings containing unusual Unicode digits. This is a routine hardening of test coverage, not a fix for a known security bug.