Amber nodes are monitored by CommitWatch. Gray nodes are sampled from authenticated GitHub public commit search and may not represent complete contribution history.
This commit strengthens the library's startup self-test for SHA-256 compression functions that users can plug in. It adds a more thorough 'smoke test' that compares the user-supplied function against the built-in one across many message le…
Defensive self-test hardening for pluggable cryptographic primitiveExpanded test coverage for multi-block, unaligned-input, and non-IV state casesStartup-time detection of faulty SHA-256 compression functions
This change makes Bitcoin Core disconnect any peer that sends a 'getblocktxn' message asking for zero transactions. Such a request is pointless because if no transactions are missing, the receiver already has everything it needs to reconst…
Denial-of-service hardening: prevents a peer from forcing the node to read a block from disk for no legitimate purposeProtocol invariant enforcement: empty getblocktxn requests are semantically invalid under BIP 152 compact block reconstructionPeer misbehavior response: disconnects rather than servicing the request
This change makes Bitcoin Core disconnect a peer earlier when it asks for a 'filtered block' from a node that does not advertise bloom-filter support. Previously, the node would read the block from disk first and only then ignore the reque…
Adds early validation of peer request against advertised service bitsDisconnects peer on protocol violation instead of silently ignoring after disk I/OAvoids unnecessary disk read for a request that will be rejected anyway
This commit is a simple code cleanup in a test file. It takes an existing test and moves it into a separate helper method, then calls that method from the main test runner. There is no change to Bitcoin Core's actual network code, no bug f…
This commit fixes a small but real privacy bug in the ElligatorSwift key-encoding helper. The code had wrongly assumed that the SHA-256 hashing routine wipes its internal buffer after feeding data in, so it marked the whole hash state as s…
Secret key material retained in SHA-256 internal buffer after writeOver-broad declassification of struct containing secret key copyMissing stack scrubbing of hash state before function return
This commit adds a new regression test to Bitcoin Core. It checks that when a wallet created on a newer version is loaded on an older version and then brought back to the newer version, the wallet still remembers alternative 'witness varia…
This Bitcoin Core wallet change lets the wallet remember multiple valid versions of the same transaction that look identical on-chain by transaction ID (txid) but differ by witness transaction ID (wtxid). For example, a Taproot spend can b…
Data integrity / consistency fix for wallet transaction stateTaproot witness malleability handlingDatabase schema addition (wtxvariant records) with backward-compatible canonical tx record
This commit adds a new automated test to Bitcoin Core that checks whether very old-style wallets (those created before a 2012-era change) can still be successfully migrated to the modern wallet format. It does not change any production wal…
This patch fixes a bug where migrating very old Bitcoin wallets would fail entirely. The problem was that the migration code required a 'best block locator' record that did not exist in wallets created before that feature was added. The fi…
Missing-record handling changed from fatal error to graceful continuationEmpty CBlockLocator explicitly treated as valid by updated commentsNo input validation, parsing, or cryptographic changes
This commit adds a new automated test to Bitcoin Core. The test checks that the program refuses to load a wallet stored in a directory where it cannot write files. The commit message says that, before this behavior existed, loading such a …
Regression test for denial-of-service/crash scenario (wallet in non-writable directory)Commit message explicitly states prior crash on subsequent writeNo product code change in this commit; coverage only
This commit only adds a new automated test that checks Bitcoin Core correctly refuses to create a wallet in a directory without write permission. It does not change the wallet-creation logic itself, so it does not fix or introduce a securi…
test-only changeno production code modifiedasserts expected error on non-writable directory
This Bitcoin Core commit fixes a bug where the program would crash if a wallet was loaded from a directory that cannot be written to. It also gives a clearer error message when someone tries to create a wallet in such a directory. The fix …
Denial-of-service vector: loading a wallet on a non-writable directory caused a node crash on subsequent writesInput/environment validation added: explicit writability check before database openError-handling improvement: clearer error message for wallet creation failures
A single missing semicolon in Bitcoin Core's wallet coin-selection code caused a comparison to run before an assignment. As a result, the variable that was supposed to hold the total available amount instead held just true or false. The co…
Operator precedence bug causing unintended boolean assignmentDownstream arithmetic on a variable that held a boolean valueCoin-selection logic affecting fund availability checks
This commit fixes a bug in Bitcoin Core's transaction fee-bumping feature. When a user tried to increase the fee on a transaction that was tied to a very large cluster of unconfirmed transactions, the software could not calculate the requi…
Denial-of-service vector: unhandled std::bad_optional_access causes GUI crash and RPC uncaught exceptionNull-opt optional dereference in fee-bumping logicMissing early return after error condition check
This commit only adds a comment explaining what a particular function returns in different situations. No code behavior was changed, so it cannot introduce or fix a security issue.
This commit is a performance improvement to the SHA-256 hashing code in libsecp256k1. It makes the code compress multiple 64-byte data blocks directly from the caller's input buffer instead of first copying each block into a small internal…
This commit adds a new public API that lets users of the libsecp256k1 cryptography library swap out the internal SHA-256 compression function at runtime, typically to use a faster hardware-accelerated version. The library checks that the r…
New public API for runtime cryptographic primitive substitutionSanity check (selftest_sha256) performed before accepting user-supplied compression functionContext field ctx->hash_ctx.fn_sha256_compression is now a trust boundary for SHA-256 operations
This commit is a large but purely structural refactor of the libsecp256k1 cryptographic library. It threads a new 'hash context' through every SHA-256, HMAC-SHA-256, and RFC 6979 operation so that a different SHA-256 compression implementa…
No security-relevant signals: refactor onlyDefault SHA-256 compression function unchangedNo new externally controllable function pointers introduced in this commit
This is a harmless code cleanup in Bitcoin Core's test suite. It moves a small helper class called HasReason from a large test-framework header into a smaller, more focused header so that simple unit tests don't need to pull in the entire …
This commit only adds new test code to Bitcoin Core. It expands an existing unit test to check that a background worker pool (ThreadPool) returns the correct error messages when tasks are submitted while the pool is not started, interrupte…