Continuous public-repository analysis

Open source.
Not open secrets.

We watch what security-critical projects change—then translate the code into clear, independent intelligence anyone can understand.

24Projects watched
17865Commits captured
17284AI analyses
99High-risk findings · 30d
The watch feed

Changes worth understanding

AI analysis is published as generated. Community notes appear after human validation.

17284 analyses
Highest risk·RSS
Low 46 AI analysisMessage 45 · Thin
BT btcsuitebtcd BitcoinNode implementations

psbt: decode base64 packets strictly

This change tightens how base64-encoded PSBT (Partially Signed Bitcoin Transaction) data is decoded. Previously, the decoder could silently ignore extra whitespace or unexpected characters in the base64 stream. Now it rejects anything that…

Strict input validation added for base64 decodingRejection of whitespace/newlines inside base64 payloadUse of strict base64 decoder to enforce RFC4648 padding rules
70e8ceb9by Boris Nagaev+28−51 file
No security note in commit
Low 28 AI analysisMessage 55 · Thin
BT btcsuitebtcd BitcoinNode implementations

psbt: test strict base64 packet decoding

This commit only adds new test code to check that the PSBT (Partially Signed Bitcoin Transaction) parser rejects malformed base64 input such as whitespace, bad padding, or extra bytes. It does not change the actual parser logic. The tests …

strict base64 decoding validationPSBT packet format hardeningrejection of non-canonical base64 input
0a33cceaby Boris Nagaev+56−01 file
No security note in commit
Low 49 AI analysisMessage 45 · Thin
BT btcsuitebtcd BitcoinNode implementations

wire: reject trailing v2 message payload data

This commit adds a check in btcd's Bitcoin network message parser to reject v2 protocol messages that contain leftover, unread data after the expected payload has been decoded. Previously, extra bytes at the end of a message payload were s…

Strict input validation added to network protocol parserRejection of trailing bytes prevents parsing ambiguityPotential P2P protocol malleability vector addressed
03aeb81aby Boris Nagaev+6−01 file
No security note in commit
Low 27 AI analysisMessage 55 · Thin
BT btcsuitebtcd BitcoinNode implementations

wire: test v2 message trailing payload rejection

This commit adds a new test to check that the Bitcoin wire protocol v2 message parser rejects messages containing extra, unexpected trailing bytes. It does not change production code; it only strengthens test coverage for a parsing safety …

Trailing-byte rejection is a defensive parsing invariant that can prevent protocol desynchronization or message-boundary confusion.The test mirrors an existing v1 test (TestReadMessageTrailingBytes), suggesting the v2 code path may have lacked equivalent coverage.No fix or behavior change is present; the commit only adds regression coverage.
42077fdbby Boris Nagaev+22−11 file
No security note in commit
Informational 15 AI analysisMessage 60 · Adequate
BT btcsuitebtcd BitcoinNode implementations

btcutil/bloom: fix malformed filter test transaction

This is a one-byte fix in a test file. A test transaction used to exercise the Bloom filter code had an extra trailing zero byte, making it malformed. The change removes that extra byte so the test data is a valid serialized Bitcoin transa…

def22fa8by Boris Nagaev+1−11 file
No security note in commit
Low 49 AI analysisMessage 50 · Thin
BT btcsuitebtcd BitcoinNode implementations

btcutil: reject trailing data in byte constructors

This commit tightens two helper functions that create Bitcoin block and transaction objects from raw bytes. Previously, extra bytes after a valid block or transaction were silently ignored. Now the functions return an error if any unexpect…

Strict input validation: rejection of trailing bytes after deserializationPotential malleability reduction: prevents extra payload from being accepted as part of a block/tx wrapperDefensive hardening of public API constructors used by downstream consumers
41d537d8by Boris Nagaev+14−12 files
No security note in commit
Informational 15 AI analysisMessage 60 · Adequate
BT btcsuitebtcd BitcoinNode implementations

btcutil: test byte constructors reject trailing data

This commit only adds new unit tests. It does not change any production code. The tests verify that two helper functions already reject input that contains extra bytes after a valid Bitcoin block or transaction. Because no code behavior is…

Tests assert strict deserialization rejects trailing bytesNo production code changes
e72a65deby Boris Nagaev+33−02 files
No security note in commit
Low 48 AI analysisMessage 50 · Thin
BT btcsuitebtcd BitcoinNode implementations

musig2: return partial signature read errors

This commit fixes a bug in the MuSig2 multi-signature code where reading a partial signature from an input stream could fail silently. Previously, if the stream ended early or had a read error, the function would return 'no error' as if th…

Silent failure in cryptographic decode pathPartial signature scalar left uninitialized on read errorMuSig2 signing correctness dependency
63bc064dby Boris Nagaev+1−11 file
No security note in commit
Informational 12 AI analysisMessage 60 · Adequate
BT btcsuitebtcd BitcoinNode implementations

musig2: test partial signature short reads

This commit only adds a new unit test that checks whether the MuSig2 partial signature decoder correctly rejects empty or too-short inputs. It does not change any production code, so by itself it cannot introduce or fix a security vulnerab…

4a7a9feaby Boris Nagaev+21−01 file
No security note in commit
Informational 15 AI analysisMessage 45 · Thin
BT btcsuitebtcd BitcoinNode implementations

multi: use local submodules in root

This commit only changes Go module configuration so that the main btcd project uses local copies of two of its own sub-packages (btcutil and wire) instead of fetching them from the internet. There is no code behavior change, no bug fix, an…

81b07f66by Boris Nagaev+5−01 file
No security note in commit
Low 49 AI analysisMessage 45 · Thin
BT btcsuitebtcd BitcoinNode implementations

rpc: decode sent raw transactions strictly

This commit changes how raw transactions submitted to the Bitcoin node via RPC are decoded. It switches from a lenient decoder to a stricter one that validates the transaction more thoroughly before accepting it. The likely effect is to pr…

Stricter deserialization of user-supplied raw transaction dataChange in RPC input validation path (sendrawtransaction)Potential denial-of-service or mempool corruption risk from malformed transactions mitigated
59db8355by Boris Nagaev+1−31 file
No security note in commit
01
Why commit watching?

Security should leave a paper trail.

A quiet fix may be responsible caution—or it may leave users unaware that their assets were ever at risk. CommitWatch preserves the evidence, adds context, and tracks whether vendors disclose, acknowledge, and learn.

Why we built this