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 removes an unused explicit copy helper and strengthens a safety guard in Bitcoin Core's wallet code. Previously, copying a wallet transaction object was allowed through a private default copy constructor and an explicit CopyFro…
Defensive hardening: explicitly deleting copy operations for a mutable wallet objectCode comment explicitly frames change as bug-prevention, not security fixNo functional bug or exploit path is described in commit or diff
This is a routine internal code cleanup in Bitcoin Core's wallet module. It makes the transaction pointer inside a wallet transaction object private and forces the rest of the code to read it through a getter function. There is no security…
This commit changes how Bitcoin Core wallet transactions are loaded from disk or copied between wallets. Previously, a wallet transaction object could be created with no actual transaction inside it, and later filled in. The patch makes th…
Null-pointer dereference prevention: CWalletTx transaction member is now guaranteed non-null at construction via Assert(tx) and direct deserialization.RAII-style construction: transaction object is fully initialized in constructor rather than two-phase init-then-fill.Improved corruption handling: deserialization exceptions are caught and reported as DBErrors::CORRUPT.
This commit adds automated tests for a new database migration helper in LND's Postgres and SQLite backends. It does not change production behavior; it only verifies that the migration-only bulk interface is opt-in, handles edge cases corre…
Tests assert that regular walletdb.DB backends do not expose migration-only bulk KV interfaces, confirming defense-in-depth opt-in design.Tests validate input sanitization: empty/nil bucket names and leaf keys return errors.Tests verify transaction lifecycle and rollback behavior to prevent partial migration writes.
This commit only adds new Go interface definitions for a future database migration feature. There is no executable code, no bug fixes, and no behavior changes to the running application. It cannot be exploited or cause security issues on i…
This commit adds a new internal-only Postgres bulk-loading helper for database migrations in LND. It is not a routine user-facing feature; it is a migration tool that copies key/value data efficiently into a Postgres backend. The code intr…
SQL string concatenation for table names in TruncateTargetTable, CheckEmpty, InsertBucket, InsertLeaves (via CopyFrom identifier), FetchTopLevel, and FetchChildrenNew TRUNCATE TABLE capability exposed only through migration-only constructorNew bulk COPY path bypasses normal walletdb insert flow and performs direct table writes
This change prevents a peer from accidentally or maliciously opening a second Lightning channel using the exact same Bitcoin transaction output as an existing channel. Because channel IDs are derived from that funding output, reusing it wo…
channel ID collision / duplicate identifierfunding outpoint reusestate confusion between distinct channels
This change fixes a crash in the part of Core Lightning that handles peer connections. Previously, if the same internal connection was unexpectedly set up twice, the program would abort with an assertion failure. Now it logs a debug messag…
Assertion replaced with defensive error handlingPotential denial-of-service crash vector removedDuplicate peer/subd connection now logged and dropped
This is a small code cleanup in a fuzz test file. It removes a helper function and changes one call site to use the standard serialization pattern instead. There is no security issue here.
This commit simply removes an unused helper function inside Bitcoin Core's fuzz testing code. Fuzz tests are internal developer tools used to find bugs, not code that runs on live Bitcoin nodes or wallets. There is no security-relevant cha…
This commit adds a feature that lets BTCPay Server users import wallet labels from a BIP-329 file. The code parses uploaded JSONL files, validates entries, and attaches labels to transactions, addresses, or transaction outputs. The change …
New file-upload endpoint accepting .jsonl, .json, and .txt extensionsFile size capped at 1 MBJSON parsing of user-supplied input with per-line try/catch
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.