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 fixes a log-forgery risk in a Rust Lightning library helper called PrintableString. That helper is meant to make untrusted text safe to print by replacing dangerous characters with a placeholder. It already caught most control …
log injection / log forgery via U+2028/U+2029 line separatorsincomplete input sanitisation in PrintableStringpeer-controlled strings (node alias, BOLT 12 description/issuer/payer_note, peer_msg) as attack surface
This change fixes a bug in how Lightning blinded paths choose a compact reference to the introduction node. Previously, the code could pick an old channel that was disabled or effectively closed, making the resulting BOLT 12 offer or blind…
This commit only adds a new fuzz test target. Fuzz tests are automated tools that throw random or crafted input at a piece of code to look for crashes or bugs. The commit does not change any production code, protocol behavior, or user-faci…
This commit adds a new feature to rust-lightning called BOLT 12 payer proofs. It lets someone who paid a BOLT 12 invoice cryptographically prove they paid it, while optionally hiding some invoice details. The change is a large new module p…
New cryptographic proof-of-payment feature, not a vulnerability fixExtensive parse-time validation: preimage hash match, issuer signature, payer signature, TLV ordering, duplicate rejection, omitted-marker minimizationSelective disclosure logic relies on merkle tree reconstruction; correctness is backed by spec test vectors
This commit adds new code to support BOLT 12 "selective disclosure" payer proofs in the Lightning Dev Kit. It lets someone prove they have a valid signed invoice without revealing every field. The change is a feature addition, not a fix fo…
New cryptographic merkle-tree code for BOLT 12 payer proofsRefactors existing TLV hashing to share primitives between signing and selective disclosureAdds omitted-marker validation to prevent non-minimized or out-of-order marker sequences
This commit is a code cleanup (refactor) in the Lightning Dev Kit library. It moves existing payer key-derivation logic into shared helper functions so that future 'payer proof' features can reuse the same code. The change does not appear …
Refactor only: moves existing key derivation/verification logic into helpers without changing algorithmsAdds new public API `Bolt12Invoice::derive_payer_signing_keys` for payer proof key recoveryNo mention of vulnerability, bug, CVE, security fix, or exploit in commit title/message
This commit is a feature addition, not a vulnerability fix. It extends rust-lightning's BOLT 12 payment support so that when a wallet pays a BOLT 12 invoice, the paid invoice is saved through retries and restarts and is later exposed in th…
New BOLT 12 payer proof feature: persists paid invoice across retries/restarts and exposes it in Event::PaymentSentPayer signing key re-derived from invoice payer metadata rather than storing extra key materialAdds end-to-end test for proof creation, verification, and bech32 round-trip
This commit is a straightforward feature addition, not a security fix. It adds an optional `offer_id` field to the `invoice_creation` event notification that plugins can subscribe to. This lets plugins know which BOLT 12 offer triggered a …
This commit fixes a single-character typo in a test's expected error message pattern. The word 'Unkown' is corrected to 'Unknown' in a regex used by an automated test. There is no change to production code, no security fix, and no user-fac…
This commit fixes a bug in Core Lightning's wallet code where, if a prepared Bitcoin transaction failed during signing or broadcast, the coins that had been set aside ('reserved') for that transaction were not released back to the wallet. …
Denial-of-service/availability impact: failed transactions could leave wallet UTXOs permanently reserved, preventing their reuse until manual interventionResource exhaustion pattern: reserved inputs are not spendable, so repeated failed sends could reduce usable wallet balanceError-path resource cleanup (CWE-772, CWE-404): missing release of reserved inputs on failure
This commit adds a new command-line feature to a developer tool (bolt12-cli) that lets users decode and display a new type of BOLT 12 data structure called a 'payer proof.' It also makes a small, safe-looking fix to how text fields are pri…
New decode path added for payer_proof TLVs, with required-field checks using must_have()Minor output-sanitization change: trailing NUL trimmed from UTF-8 fields before printfNo memory-management, cryptographic, or network-facing changes observed
This commit adds support for decoding a new experimental BOLT12 format called a 'payer proof' in the Core Lightning node's decode command and related API bindings. It is a feature addition that extends existing decoding logic to recognize …
New experimental BOLT12 decode type addedSignature and preimage fields exposed in decode outputMerkle proof fields added for omitted TLV verification
This commit only adds two new automated tests that demonstrate an existing bug: the 'withdraw' command returns an unsigned raw transaction in its 'tx' field because an internal helper strips away signatures. The tests are marked as expecte…
Regression tests for issue #8701: withdraw returns unsigned raw transactionRoot cause identified in commit message: psbt_txid() uses WALLY_PSBT_EXTRACT_NON_FINAL which strips signatures/witnessesTests assert all segwit inputs have non-empty witness data in withdraw response
This commit fixes a bug in Core Lightning's 'withdraw' command where the transaction shown to the user was returned without valid signatures or witness data, even though the actual network broadcast worked correctly. The returned 'tx' fiel…
API response returned unsigned transaction data to the userRegression introduced by libwally 0.8.8 / PSBTv2 updateWitness and scriptSig data stripped due to WALLY_PSBT_EXTRACT_NON_FINAL flag
This is a minor build-compatibility fix for the GCC 15 compiler. It changes two local variables from `char *` to `const char *` so the code compiles cleanly with newer, stricter compiler warnings. There is no functional change and no secur…
This commit fixes a validation gap in the Lightning Dev Kit's LSPS5 (liquidity service) URL handling. When receiving a URL over the wire protocol, the code previously accepted any URL scheme, including insecure ones like http:// or ftp://.…
Bypass of existing HTTPS-only URL validation in wire deserialization pathPotential downgrade or redirection to insecure transport for LSPS5/webhook URLsInconsistent validation between serde/JSON and `Readable` deserialization paths
This commit tightens validation of BOLT 12 Lightning offers so that an offer cannot specify a payment amount of zero. Previously, zero-amount offers could be built or parsed successfully, which the BOLT 12 specification now forbids. The ch…
Spec-compliance validation changeInput sanitization for parsed offer TLVsBuilder hardening against zero-amount offers
This change fixes how LDK parses BOLT 12 offers encoded in bech32. Previously, LDK accepted offers whose bech32 padding was invalid according to the BIP-173 standard. The fix now rejects such malformed offers, matching the protocol specifi…
Input validation hardening: enforces BIP-173 bech32 padding rules during BOLT 12 offer parsingNew error variant surfaces previously swallowed malformed inputAdds specification test vectors for invalid padding rejection