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 adjusts the project's continuous integration (CI) test script to pin an older version of a build-time helper crate called `jobserver` when using older Rust compilers. It is a build compatibility fix, not a security patch, and d…
This commit removes the 'Option' wrapper from several HTLC amount fields, making them required instead of optional. It is a cleanup/refactoring change that simplifies the code by assuming the amount is always known. The commit message fram…
Removal of Option wrapper for financial amount fieldsSerialization format change from optional to required TLV fieldsLoss of backward compatibility with older serialized monitor/channel state
This commit is a code cleanup: it moves repeated ChaCha20 encryption calls into a single helper function without changing the underlying math or behavior. There is no indication it fixes a security bug or introduces a new vulnerability.
Refactor only: identical ChaCha20 construction moved to helperNo change to key, nonce, or counter derivationNo new unwraps introduced; existing unwraps consolidated
This patch fixes a potential integer overflow when calculating Lightning channel fees. If a malicious or misconfigured peer set an extremely high transaction fee rate, the software could overflow a 32-bit integer while applying a safety bu…
Integer overflow in fee calculationUse of saturating_mul to prevent u32 wraparound/panicRemotely reachable input (peer-provided feerate) drives the overflow
This commit fixes a bug in how Lightning Dev Kit checks expiry times for payments sent through 'blinded paths' (a privacy feature that hides the final recipient). The code was accidentally checking the outgoing expiry time instead of the i…
CLTV expiry check using wrong variable (outgoing vs inbound)Blinded path privacy/cost-protection bypassTest updated to reflect intended introduction-node rejection behavior
This commit is a preparatory refactor in LDK's payment-sending code. It adds a new `total_mpp_amount_msat` field to `RecipientOnionFields` so that, in future commits, a payer can send an HTLC that is only one part of a larger multi-part pa…
New required field added to a core payment API (`RecipientOnionFields`)Serialization compatibility wrapper introduced for persisted `ClaimableHTLC` onion fieldsAssertion added that new `total_mpp_amount_msat` must equal existing amount (currently enforced)
This commit adds safety checks inside the Lightning payment code to make sure the route finder (the 'Router') actually follows the rules it was given. Before sending a payment, the code now verifies that the chosen route does not exceed th…
Defensive validation of externally supplied router outputFee-bounds enforcement for routing feesMPP redundancy check preventing unnecessary payment parts
This commit adds a seventh cryptographic key to an existing key-expansion routine. The new key is intended for a future feature where multiple nodes can share a 'phantom' blinded payment path. The change itself only extends the HKDF output…
Cryptographic key material expansion changed (HKDF output count increased from 6 to 7)New secret key field added to `ExpandedKey` structNo security relevance disclosed by the vendor in commit message or diff
This commit is a straightforward code cleanup in a Rust Lightning library. It stops hiding an internal module behind re-exports and exposes it directly in the public API. The change fixes an earlier accidental break in the public API where…
No memory-safety, cryptographic, or payment-state changesNo new input parsing or network message handlingNo change to consensus, channel, or HTLC logic
This commit is a pure code cleanup: it changes where one internal type, ChannelTransactionParameters, is imported from. There is no functional change, no bug fix, and no security relevance visible in the diff or commit message.
This commit is a documentation-only change in the Rust Lightning library. It adds a comment explaining that a generic signing helper trait called SignFn is intentionally not exposed to language bindings (for users of other programming lang…
This commit only adds a missing documentation comment to the splice_channel function. It explains that a FundingTransactionReadyForSigning event will be generated after signatures are exchanged, and that funding_transaction_signed should t…
A single boolean argument in a function call was corrected during a process called 'splicing' (a way to resize a Lightning channel). The argument tells the code whether the local side is the one creating the commitment transaction. The com…
Argument-correctness fix in commitment-building codeNo async HTLC state changes during affected code path per commit messageNo validation bypass, overflow, or authorization change visible in diff
This commit fixes a bug in how the Lightning Dev Kit (LDK) handles key rotation when splicing a channel. Splicing is a way to resize a Lightning channel on-chain. The protocol only allows changing the 'funding key' during a splice, but LDK…
Protocol violation: non-funding keys rotated during splicePotential commitment signature mismatch after spliceAPI ambiguity allowed signer to return incompatible key set
This commit fixes a bug where a specially crafted network message could cause the Lightning Dev Kit software to crash. The crash happens while reading a time duration from the message. The fix rejects obviously invalid duration values befo…
Remote denial-of-service (panic/crash) via deserialization of untrusted inputInteger overflow-like panic in standard-library wrapper (`Duration::new`)Missing input validation before constructing `Duration`
This commit changes how a Lightning wallet (LDK) derives one of the keys that receives funds when the other party force-closes a channel. Previously, that key depended on per-channel state, so if a user lost all state except their main see…
New key derivation path added for disaster recovery of counterparty-force-closed fundsSpending code updated to support both old and new derivation formatsTODO comment indicates the actually-used key is not yet dynamic
This commit adds an opt-in feature to LDK's key manager that changes how on-chain backup addresses are derived when a channel is force-closed by the other party. The new derivation makes these addresses come from a small, predictable set, …
New key derivation flag added to `KeysManager::new` and `PhantomKeysManager::new`Old `remote_key` derivation depended on `channel_keys_id`, making funds unrecoverable if channel state is lostNew derivation uses a static set of keys, enabling blockchain scanning for disaster recovery
This commit is a preparatory refactor in LDK's key-handling code. It renames a trait method from `pubkeys` to `new_pubkeys` and changes the default signer so it no longer caches a fixed set of holder public keys. The stated goal is to allo…
API rename from `pubkeys` to `new_pubkeys` with semantic contract changeRemoval of cached `holder_channel_pubkeys` from `InMemorySigner`Documentation now allows `new_pubkeys` to return different keys per call
This patch fixes an integer overflow bug in the Lightning Dev Kit (LDK) rust-lightning implementation. For very old channels that were closed before version 0.1, an internal counter used to track channel monitor updates could be set to the…
Integer overflow in update_id generation for pre-0.1 closed channelsPotential panic/crash when processing monitor updates for legacy closed channelsPost-closure ChannelMonitorUpdate ID collision risk acknowledged by author
This commit fixes a bug in rust-lightning's encrypted stream reader where reaching the end of a data stream could cause the program to get stuck in an endless loop instead of stopping cleanly. The fix makes the reader recognize the end-of-…
Infinite loop / denial-of-service condition on malformed or truncated encrypted inputMissing EOF handling in a stream-draining loopDiscovered by fuzzing (`onion_message_target`)