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
18180Commits captured
17450AI analyses
103High-risk findings · 30d
The watch feed

Changes worth understanding

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

17450 analyses
Highest risk·RSS
Low 47 AI analysisMessage 73 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

private broadcast: enforce sending to unique node ids

This change adds a safety check inside Bitcoin Core's private transaction-broadcast feature. It prevents the same node from being chosen more than once to receive different transactions, because doing so could let that node figure out whic…

privacy leak mitigation in transaction broadcastdefensive invariant enforcement with Assume(false)prevents node-id reuse during private broadcast rounds
08b7c61fby Vasil Dimov+8−12 files
Vendor flagged security relevance
Informational 15 AI analysisMessage 68 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

xpay: clean preapprove*_succeed functions

This is a routine code cleanup in the xpay plugin. Two nearly identical functions that handle successful 'pre-approval' responses for invoice and keysend payments were merged into one shared function. There is no change in behavior, no bug…

fdb6df88by Lagrang3+6−251 file
No security note in commit
Informational 18 AI analysisMessage 68 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

xpay: age layer before payment instead on timer

This change adjusts when the xpay plugin cleans up old routing data. Previously, cleanup ran on a 60-second timer, which could fail during shutdown and cause test flakiness. Now cleanup happens right before each payment is routed. The patc…

No security-relevant keywords in commit title or messageChange is described as reducing test flakiness, not fixing a vulnerabilityNo input validation changes, no memory safety changes, no authentication/authorization changes
9e8f4ffdby Lagrang3+19−231 file
No security note in commit
Informational 21 AI analysisMessage 78 · Adequate
BC Bitcoin CoreBitcoin Core BitcoinSupply chain

lint: Require scripted-diff script to succeed

This is a small fix to a developer linting tool that checks whether automated 'scripted-diff' commits actually run their embedded scripts. Previously, if the script itself failed, the check could still report success because the success/fa…

Logic error in CI lint script allowed failing verification scripts to be reported as passingFix enforces that scripted-diff embedded scripts must succeed before diff comparisonNo change to consensus, networking, wallet, or cryptographic code
2a36d6a5by Hodlinator+1−11 file
No security note in commit
Low 29 AI analysisMessage 78 · Adequate
LDK Lightning Dev Kitrust-lightning BitcoinCryptographic librariesLightning Network

Add LSPS2 replay regression coverage

This commit adds a new regression test for the LSPS2 (Lightning Service Provider Specification 2) feature in rust-lightning. It checks that if a node crashes and restarts, replaying the same intercepted payment event does not cause the ser…

Regression test for replay idempotency after state persistenceRace condition between persistence and replayed intercepted HTLC eventsPotential duplicate queueing/processing of intercepted HTLCs on restart
68e71c2fby tnull+48−01 file
No security note in commit
Informational 24 AI analysisMessage 68 · Adequate
LDK Lightning Dev Kitrust-lightning BitcoinCryptographic librariesLightning Network

Prune closed LSPS2 terminal channel state

This commit adds cleanup logic for a Lightning Service Provider (LSP) feature called LSPS2 Just-In-Time (JIT) channels. When a JIT channel closes, the service now deletes leftover internal tracking entries instead of keeping them forever i…

State pruning for closed JIT channels to prevent indefinite retention of stale mappingsNew public API surface (`channel_closed`) requiring correct event forwarding by callersPersistence of updated peer state after pruning, with error mapping to `APIMisuseError`
bab66f62by tnull+146−02 files
No security note in commit
Low 35 AI analysisMessage 47 · Thin
LD LedgerLedger Bitcoin app BitcoinHardware wallets

fix: TARGET_* constants propagation

This commit fixes a build-configuration problem in Ledger's Bitcoin app. Two source files now explicitly include the SDK header that defines TARGET_* constants (such as TARGET_NANOX, TARGET_STAX, TARGET_FLEX), and the build adds the correc…

Conditional compilation depends on device-specific TARGET_* macrosMissing SDK header could cause silent fallback to default code pathsCompile-time guard added to fail closed if constants are unavailable
56299efaby Ilya Artemov+9−03 files
No security note in commit
Low 44 AI analysisMessage 68 · Adequate
LDK Lightning Dev Kitrust-lightning BitcoinCryptographic librariesLightning Network

Treat replayed LSPS2 HTLCs idempotently

This change fixes a crash and duplicate-queue bug in the Lightning Dev Kit's LSPS2 payment queue. After a restart, previously seen intercepted HTLCs can be replayed; the old code would panic (in debug builds) or add duplicates, while the n…

debug_assert! panic on replayed intercepted HTLCs removedduplicate queued payment entries preventedstate consistency across restart improved
6997c888by tnull+25−81 file
No security note in commit
Informational 15 AI analysisMessage 62 · Adequate
EP Elements ProjectCore Lightning BitcoinLightning Network

CI: change email server port from 587 to 465 for repro errors

This commit changes the SMTP port used by a GitHub Actions workflow from 587 to 465 when sending automated emails about reproducible-build errors. Port 465 is the standard port for SMTP-over-SSL/TLS, while port 587 is typically used with S…

c779e165by daywalker90+1−11 file
No security note in commit
Low 35 AI analysisMessage 95 · Strong
BT btcsuitebtcd BitcoinNode implementations

netsync: require block-serving services on regtest/simnet sync peers

This commit fixes a bug in btcd's test-network synchronization logic. A previous change accidentally allowed light clients (such as Neutrino wallets) to be chosen as sync peers on regtest/simnet. Because light clients advertise a recent bl…

Denial-of-service via sync livelock on regtest/simnetLight client eligible as sync peer due to missing service-flag checkPeer service flags not validated before sync election on test networks
a7e980ddby Oli+55−442 files
No security note in commit
Informational 15 AI analysisMessage 85 · Strong
BC Bitcoin Corelibsecp256k1 BitcoinCryptographic libraries

Use __GNUC__ instead of SECP256K1_GNUC_PREREQ

This commit is a routine cleanup of compiler feature checks in the secp256k1 cryptographic library. It replaces a custom version-check macro with a simpler check for whether the compiler is GCC (or claims to be GCC, like Clang). The change…

09870e9cby copilot-swe-agent[bot]+10−102 files
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