CR
← Developer activityVerified account

Craig Raw

Public commit activity attributed with verified account confidence. This page describes observable work, not personal trustworthiness.

@craigraw on GitHub ↗
270 commits1 monitored projects46 candidates5 high-risk analyses
Project constellation

Where the commits appear

Amber nodes are monitored by CommitWatch. Gray nodes are sampled from authenticated GitHub public commit search and may not represent complete contribution history.

Monitored External sample
Projects connected to Craig RawA visual map of monitored and externally discovered repositories.CRdeveloper270Sparrow Wallet
Monitored evidence

CommitWatch projects

External discovery

Other public projects

No external sample loaded yet.

Authenticated GitHub discovery can enrich this profile.
Analyzed activity

Recent published watches

Message quality and risk characterize commits, never the person.

Moderate 65 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

close remaining local dns resolution gaps when classifying hostnames and connecting via tor

This commit fixes privacy gaps in Sparrow Wallet when it connects through Tor or another proxy. Previously, the app could accidentally ask the computer's normal DNS resolver to translate server names, which could reveal which Bitcoin serve…

DNS leak prevention when proxy/Tor is configuredAvoids local DNS resolution of remote hostnames through configured proxyPrevents direct local-network connections from bypassing proxy
03222f20by Craig Raw+80−23 files
Vendor flagged security relevance
Low 48 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

avoid deleting the backups of same-prefixed wallets

This commit fixes a bug in how Sparrow Wallet finds and deletes old wallet backups. Previously, the backup cleanup logic used loose pattern matching that could accidentally treat backups of one wallet as if they belonged to another wallet …

Incorrect backup selection could lead to deletion of another wallet's backup filesLoose filename prefix matching allowed same-prefixed wallet names to collideDate extraction regex accepted extra trailing characters, broadening matches
b6ed4ba7by Craig Raw+55−302 files
No security note in commit
Moderate 62 AI analysisMessage 60 · Adequate
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

verify proof of work on chain tips and warn when a tip goes stale

This commit adds safety checks to the Bitcoin wallet Sparrow when it receives block-chain tip announcements from an Electrum server. It now verifies that the announced block header is properly formatted, not timestamped too far in the futu…

Adds proof-of-work verification on server-announced chain tipsAdds future-timestamp rejection for announced chain tipsAdds staleness warning when no new mainnet tip is received for >2 hours
5ccc4902by Craig Raw+180−55 files
No security note in commit
Moderate 66 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

prevent a password change from re-encrypting wallets whose filenames share the same prefix

This commit fixes a bug in Sparrow Wallet's password-change feature. Previously, when a user changed the password on a wallet file whose name was a prefix of another wallet file (for example, 'Savings' and 'Savings.old'), the underlying H2…

Unintended re-encryption of sibling wallet files due to prefix matching in H2 ChangeFileEncryptionPotential wallet corruption or loss of access when changing a wallet passwordUse of isolated temporary directory to prevent cross-wallet file operations
24c6202eby Craig Raw+153−103 files
No security note in commit
Moderate 56 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

reject truncated and oversized tlv lengths when parsing keycard responses

This commit fixes a bug in how Sparrow Wallet reads data from Keycard hardware wallets. Previously, the code trusted the length declared inside a card response without checking whether that many bytes actually exist. A malicious or malfunc…

Out-of-bounds read / buffer over-read in TLV length parsingTruncated and oversized length values previously acceptedPotential memory-safety issue leading to zero-padded fabricated data
b0b9cc23by Craig Raw+160−52 files
No security note in commit
Low 42 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

reject extended private keys when creating a terminal watch only wallet, and show import errors

This commit fixes a bug in Sparrow Wallet's terminal (command-line) watch-only wallet creation. Previously, a user could accidentally paste an extended private key (xprv) into a dialog meant only for public keys or output descriptors, and …

Prevents accidental import of extended private keys into watch-only wallet contextSurfaces previously swallowed import errors to the user via error dialogChanges exception handling from ImportException-only to all exceptions
fa0d4841by Craig Raw+19−152 files
No security note in commit
Low 49 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

ensure imported keystore labels are truncated and unique

This commit fixes a bug in Sparrow Wallet's import of wallet labels. Previously, labels for multi-signature participants (keystores) could be too long or identical to each other, which could make the wallet file impossible to reopen. The c…

Denial-of-service via malformed imported label causing wallet file to become unopenableInput validation added for imported keystore labelsLength truncation and uniqueness enforcement for keystore labels
7a3f775aby Craig Raw+17−61 file
Vendor flagged security relevance
Moderate 61 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

always check and restrict existing wallets and backup directories to owner only permissions

This update makes Sparrow Wallet automatically tighten the file permissions on wallet and backup folders so only the computer's owner can read them. Previously, if those folders already existed with looser permissions (for example, created…

Permission hardening for sensitive wallet storage directoriesNew setOwnerOnlyDirectory helper enforcing rwx------ on existing directoriesBackup directory permissions now always restricted on startup
5d387765by Craig Raw+35−01 file
Vendor flagged security relevance
Low 25 AI analysisMessage 45 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

add bitbox02 attestation failed dialog

This commit adds a user-facing warning dialog when a BitBox02 hardware wallet fails an attestation check. Attestation is a process that helps verify the device is genuine and not a counterfeit or tampered unit. Previously, a failed attesta…

Adds explicit user warning for failed hardware wallet attestationPrevents repeated warning dialogs during device enumeration using AtomicBooleanWarns user not to store funds on potentially counterfeit device
1a810c06by Craig Raw+16−12 files
No security note in commit
Moderate 56 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

improve validation of payjoin proposals, and accept a substituted payment output where a change output is present

This commit strengthens how Sparrow Wallet checks Payjoin proposals received from a payment receiver. Payjoin lets a receiver add their own inputs to a transaction to improve privacy. The changes add missing checks that could previously le…

Added minimum fee-rate enforcement on Payjoin proposalsAdded Taproot (P2TR) key-path and derived-public-key validation and propagationRestricted payment-output substitution to proposals that retain a change output
32f7e58fby Craig Raw+250−233 files
No security note in commit
Low 46 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

improve validation of legacy multipart qr part numbers

This commit tightens how Sparrow Wallet handles multi-part QR codes used to import older wallet data. It limits part numbers to four digits and rejects impossible values (like part 0 of 0, or part 5 of 2). The change prevents the app from …

Input validation added to QR multipart parserRegex quantifier tightened from unbounded to {1,4}Bounds check prevents m > n and zero/negative counts
059f1e88by Craig Raw+10−62 files
No security note in commit
Informational 18 AI analysisMessage 65 · Adequate
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

remove unused signature verification results in satochip and keycard signers, note where signatures are verified

This commit removes leftover code that checked whether signatures from hardware card signers were valid, but then threw away the result. The signatures are still verified later by a different part of the wallet when the signed transaction …

Removal of local signature verification calls in hardware signer code pathsAdded comments documenting that signature verification occurs later via PSBT.verifyCombinedSignatures()Unused boolean results indicate the removed checks were dead code rather than active security controls
866e9893by Craig Raw+5−132 files
No security note in commit
Moderate 60 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

improve validation of bip129, descriptor and unchained wallet imports

This commit hardens how Sparrow Wallet imports wallet files from other tools. It adds checks that reject malformed or inconsistent imports—such as a multisig setup that says it needs 3 signers but only provides 2 keys, or a coordinator fil…

Added wallet.checkWallet() validation after descriptor, BSMS, Caravan and terminal wallet creationBIP129 first-address verification prevents coordinator from supplying different keys to each signerBIP129 path restriction enforcement limits derivation to standard receive/change chains
3752540eby Craig Raw+469−429 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 33 · Opaque
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

add security policy

This commit simply adds a SECURITY.md file to the repository. It is a documentation-only change that tells people how to report security bugs privately and how the project handles vulnerability disclosures. It does not change any code, fix…

1a00e2efby Craig Raw+75−01 file
No security note in commit
Moderate 59 AI analysisMessage 60 · Adequate
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

only save certificates passing hostname verification as ca validated, and retain not yet valid certificates

This commit tightens how Sparrow Wallet saves and reuses TLS certificates for private servers. Previously, any certificate that passed a basic CA check was saved as 'CA validated' even if it didn't actually match the server's hostname. Tha…

Missing hostname verification before saving CA-trusted certificateBroad exception handling previously caused deletion of saved certificates on any CertificateExceptionCertificate pinning/trust-store logic for private Electrum servers
372ebf2fby Craig Raw+38−61 file
No security note in commit
Low 28 AI analysisMessage 35 · Opaque
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

remove ineffective eckey clear

This commit removes several calls that tried to wipe private-key material from memory. The developer says these wipes were 'ineffective' because the underlying ECKey object still held the secret bytes. The change is a cleanup, but it sligh…

Removal of explicit private-key zeroization callsCommit message labels prior zeroization as ineffectivePrivate key material remains referenced longer after use
1636c7e2by Craig Raw+2−1911 files
No security note in commit
High 72 AI analysisMessage 55 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

verify fetched transactions match requested txid

This commit adds checks to make sure that when Sparrow Wallet asks an Electrum server for a specific Bitcoin transaction, the server actually returns the transaction that was requested. Before this change, a malicious or buggy server could…

Missing input validation on server-provided transaction dataPotential transaction substitution by malicious or compromised Electrum serverDefense-in-depth verification added at data deserialization boundary
3979694eby Craig Raw+100−163 files
No security note in commit
Informational 15 AI analysisMessage 28 · Opaque
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

rotate era logos

This commit simply rotates four logo images by 90 degrees. It changes only SVG graphics files and does not touch any code, cryptography, wallet logic, or network behavior. There is no security relevance.

2b9c3eb7by Craig Raw+4−44 files
No security note in commit
Informational 15 AI analysisMessage 38 · Opaque
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

bump to v2.5.4

This commit is a routine version bump from 2.5.3 to 2.5.4. It only changes version strings in four files: the build configuration, macOS packaging metadata, in-app version constant, and documentation for reproducible builds. There are no c…

ef2c2cdeby Craig Raw+4−44 files
No security note in commit
Informational 18 AI analysisMessage 50 · Thin
SW SparrowSparrow Wallet BitcoinHardware integrationSoftware wallets

treat whitespace-only labels as blank on label import and export

This commit tightens how Sparrow Wallet treats labels made only of spaces or tabs during wallet label import and export. Previously, a label consisting solely of whitespace was considered a real label; now it is treated as blank and skippe…

Behavioral hardening: whitespace-only strings now treated as absent labelsNo input validation bypass, memory safety, or cryptographic changes observedPotential minor UI/data-integrity issue mitigated, not a vulnerability
0dce4783by Craig Raw+10−92 files
No security note in commit
Wrong identity?Names can collide and public author strings can be misleading.Contact commitwatch@karma-x.io →