Every captured commit receives deterministic security triage and a separate communication-quality score. Security candidates and broader second-pass signals receive full-patch Ollama analysis.
Message quality measures whether a commit identifies its scope, purpose, rationale, testing, and supporting references. It does not change the security-severity score.
This commit simply adds a new person's PGP public-key fingerprint to the list of trusted release signers in two documentation files. It does not change any code, fix any bug, or alter any security behavior of the software itself.
This is a tiny internal fix to make a bookkeeping migration produce stable event ordering. It changes the timestamp used when creating historical 'deposit' records during a one-time database migration, so the records sort consistently with…
This commit is a documentation-only cleanup of the JSON-RPC command help files. It corrects which numeric error codes are listed for each command so the published schemas match what the software actually returns. No program logic, validati…
Documentation-only change with no executable code modificationsCorrects RPC schema error-code metadata to match actual handler behaviorNo change to input parsing, authorization, cryptography, or network behavior
This commit fixes a bug where a setting that controls whether unexpected transaction signatures are allowed was not initialized when the channel daemon starts. If a peer sent such signatures before the channel was fully ready, the program …
use of uninitialized variableundefined behavior (invalid bool load)network-triggered code path
This commit fixes the project's internal nightly code-coverage CI workflow. It changes how test coverage files are collected, ensures the same LLVM compiler version is used to generate and merge coverage data, and uploads a Codecov-compati…
This commit is a large cleanup of Core Lightning's API schemas, generated RPC bindings, and related plugin code. The stated goal is to make the documented 'required' fields match what the C code actually always produces or expects. In prac…
Large schema-only change with no accompanying security advisory or CVEOne semantic change to plugin hook response: invoice_payment hook can now reject with only failure_message and no resultMany fields change from optional to required in public RPC/protobuf interfaces
This commit only updates documentation. It adds error code 313 to the documented error lists for several Core Lightning commands (fundpsbt, utxopsbt, txprepare, multiwithdraw, and upgradewallet). The error code already existed in the code …
This commit fixes a release-script check that verifies the cryptographic signature on a file of checksums. Previously, the script only told GPG to verify the signature file itself. If someone replaced that signature file with an inline-sig…
Incorrect cryptographic verification logic in release toolingPotential false-positive signature verification with inline-signed .asc substitutionRelease-integrity hardening
This commit updates Core Lightning's release documentation to tell users and release managers to run gpg --verify with both the signature file and the manifest file named explicitly. The old one-argument form can silently succeed even if t…
Verification bypass risk in release artifact validationgpg --verify single-argument form can exit 0 without reading the intended manifestDocumentation-only hardening of release process
This commit is a routine update to the Rust dependency lock file (Cargo.lock), bumping many third-party libraries to newer patch or minor versions. The commit message gives no security reason for the update, and no verified references link…
Routine dependency refresh with no stated security rationaleUpdates to security-sensitive transitive crates (rustls, hyper, h2, tokio, webpki-roots) but no evidence these versions fix known vulnerabilitiesNo source-code changes or patch-specific fixes visible in the diff
This commit fixes a stack-overflow risk in Core Lightning's JSON parser. Before the fix, an attacker could send a valid JSON-RPC message containing thousands of nested brackets or braces. The parser's own helper functions used recursion fo…
Stack-overflow via deeply nested JSONRecursive JSON traversal without depth boundDenial-of-service vector in JSON-RPC input parsing
This commit only fixes typos and comment style. It changes two C-style comments from // to /* */ and corrects a grammar error in a documentation comment ('element' to 'elements'). There are no code behavior changes, no bug fixes, and no se…
This change fixes a test-infrastructure bug in Core Lightning's Python testing helpers. When running tests against a PostgreSQL database, very long test names could be silently shortened by PostgreSQL, causing different test runs or nodes …
No security-relevant signal: change is in test framework code onlyFixes a test reliability issue, not a runtime vulnerabilityNo input sanitization, authentication, cryptography, or network changes
This fix prevents Core Lightning from trying to use freshly created bitcoins (immature coinbase rewards) as emergency funds for fee-bump transactions. Such a transaction would be invalid under Bitcoin's rules and would be rejected by the n…
This commit fixes a bug in Core Lightning's askrene plugin that could prevent a node from restarting. When a saved routing layer contained a node bias with a description, the plugin accidentally freed the description's memory while using i…
Use-after-free / double-take of a tal-allocated string during plugin startupDenial-of-service-like symptom: lightningd aborts before replying to init, node cannot restartFixes publicly reported issue #9433 by endothermicdev
This commit only fixes a test case so it actually exercises the intended code path. It does not change any production code, so it cannot introduce or fix a real-world security vulnerability by itself. The test change is a reproducer for a …
This commit fixes a bug in Core Lightning's experimental dual-funded channel feature. When another node tried to open a channel, Core Lightning was not checking whether the proposed transaction fees were reasonable. A peer could request a …
Missing input validation on wire-parsed feerate fieldsPeer could induce signing and storage of feerate == 0RBF remote path allowed unbounded upward feerate walks
This commit adds regression tests for three related bugs where wildly wrong Bitcoin transaction feerates could enter Core Lightning. In the worst case, a malicious or broken fee source could make the node think a feerate was zero (due to a…
Integer overflow in feerate conversion (u32 wrap from 0xFFFFFFFF perkb to 0 perkw)Absurd feerate from external fee source bypassing sanity ceilingDatabase-stored out-of-range feerate causing startup abort/crash loop
This update fixes a crash bug in Core Lightning. When the software tried to list details of a channel opening in progress, it could crash if a stored fee rate was extremely large or zero. The crash happened because the code used an interna…
Integer overflow in RBF escalation (u32 * 25 / 24) leading to assertion failureAssertion failure in read-only introspection RPC (listpeerchannels) causing crash-loop at startupDatabase value treated as invariant despite originating from external fee estimator
This commit fixes a bug where Core Lightning nodes could get stuck in a crash loop. If a node had previously stored an extremely high or zero fee rate for an in-progress channel funding operation (a 'splice' or dual-funded channel RBF), a …
Integer overflow in fee-rate calculation (u32 overflow when multiplying by 25/24)Assertion failure leading to daemon crash loop at startupDatabase migration clamps out-of-range stored funding feerates
Expand any commit for its author, full message, clarity score, changed files, triage signals, analysis, and source link.
Lower-prioritylightningd: remove the "listpeers.features.option_anchors_zero_fee_htlc_tx" option.by Rusty Russell · 9881e046 · Jan 20, 2026 · 8 filesMessage 73 · AdequateInformational 21Details
Commit message · Rusty Russell
lightningd: remove the "listpeers.features.option_anchors_zero_fee_htlc_tx" option.
Everyone should be using the new name.
Changelog-Removed: JSON-RPC: `listpeers` `features` array string "option_anchors_zero_fee_htlc_tx": use "option_anchors" (spec renamed it). Deprecated in 24.08. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 21/100
This commit removes an old, renamed label from the list of features shown for Lightning peers and channels. The old label 'option_anchors_zero_fee_htlc_tx' is replaced by the current spec name 'option_anchors'. It is a routine cleanup of a deprecated JSON-RPC field, not a security fix.
Lower-priorityhsmd: remove unused "sign_local_htlc_tx" function which onchaind used to use.by Rusty Russell · af1c9640 · Jan 20, 2026 · 5 filesMessage 73 · AdequateInformational 15Details
Commit message · Rusty Russell
hsmd: remove unused "sign_local_htlc_tx" function which onchaind used to use.
I tried removing sign_penalty_to_us, but that comment is wrong: channeld uses that for the watchtower, so it stays (with updated comment).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100
This commit removes an old, unused function called sign_local_htlc_tx from the wallet's Hardware Security Module (HSM) interface. The function was previously used by the on-chain transaction handler (onchaind) but is no longer called anywhere. The change is a cleanup that also updates a comment about another function used by watchtowers. There is no security fix here.
Lower-priorityplugins: don't try to fetch max-locktime-blocks.by Rusty Russell · d5f66cea · Jan 20, 2026 · 3 filesMessage 60 · AdequateInformational 19Details
Commit message · Rusty Russell
plugins: don't try to fetch max-locktime-blocks.
It was removed in v25.09, so this code is useless.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 19/100
This commit removes leftover code that tried to read a configuration option called 'max-locktime-blocks' from three payment-related plugins. That option was already removed from the core software, so the code was doing nothing useful. The commit also hardcodes the fallback maximum payment delay to 2016 blocks, which was already the previous default. There is no direct security fix here; it is mostly cleanup of dead code.
AI review queuedlightningd: remove `decodepay`.by Rusty Russell · 592f8586 · Jan 20, 2026 · 24 filesMessage 58 · ThinInformational 19Details
parser or protocol pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 19/100
This commit removes the old 'decodepay' JSON-RPC command from Core Lightning. It was already marked as deprecated and users are directed to use the newer 'decode' command instead. There is no security bug being fixed here; it is a routine cleanup of an obsolete API.
Lower-priorityscript: API v2 accepts `position` param rather than `order`by ShahanaFarooqui · 58a620aa · Jan 20, 2026 · 1 fileMessage 50 · ThinInformational 15Details
Commit message · ShahanaFarooqui
script: API v2 accepts `position` param rather than `order`
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This is a routine maintenance update to a GitHub automation script that publishes Core Lightning's RPC documentation to a documentation platform. The script's API call now uses the parameter name 'position' instead of 'order' because the documentation platform changed its API. It also updates the target branch from '1' to 'stable' and improves log messages. There is no security relevance.
Lower-prioritydoc: Add signmessagewithkey to generate documentationby ShahanaFarooqui · 6a1f467d · Jan 20, 2026 · 2 filesMessage 50 · ThinInformational 15Details
Commit message · ShahanaFarooqui
doc: Add signmessagewithkey to generate documentation
And sorted list with file name.
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit only updates documentation build files. It adds a new manual page entry for an existing command (`signmessagewithkey`) and re-sorts some other entries alphabetically. There are no code changes and no security implications.
Lower-priorityscript: More error checks and loggingby ShahanaFarooqui · 9655f531 · Jan 20, 2026 · 1 fileMessage 45 · ThinInformational 18Details
Commit message · ShahanaFarooqui
script: More error checks and logging
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 18/100
This is a routine improvement to a GitHub automation script that synchronizes documentation to a third-party service (ReadMe). It adds basic safety checks—verifying an API key is present, confirming files exist before opening them, and switching from document 'title' to 'slug' for matching. There is no indication this fixes a security vulnerability in the Core Lightning software itself; it simply makes a docs-publishing script fail more gracefully and avoid some accidental mismatches or crashes.
Lower-prioritydoc: Update json and markdowns to make them .mdx compatibleby ShahanaFarooqui · 79ffb3a7 · Jan 20, 2026 · 12 filesMessage 65 · AdequateInformational 15Details
Commit message · ShahanaFarooqui
doc: Update json and markdowns to make them .mdx compatible
readme v2 API expects files to be .mdx compatible.
65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100
This commit only reformats documentation files and JSON schemas so they display correctly in a new documentation system (MDX). It changes email addresses from angle-bracket style to mailto links, wraps code snippets in backticks, and converts plain URLs to Markdown links. No program code, logic, or security behavior is changed.
script: Change category slug for better Admin panel management
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit updates a GitHub automation script that synchronizes documentation pages with the ReadMe documentation platform. It changes the documentation category slug from 'JSON-RPC API Reference' to 'JSON-RPC' and removes URL-encoding of that slug. It also adds an error message when the ReadMe API request fails. There is no security-relevant change here.
Lower-prioritytesting: Add TEST_LOG_IGNORE_ERRORS envvar to suppress logging errorsby Christian Decker · 49049deb · Jan 20, 2026 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · Christian Decker
testing: Add TEST_LOG_IGNORE_ERRORS envvar to suppress logging errors
60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
AI analysis · Informational 15/100
This commit adds a testing-only environment variable that, when enabled, tells Python's logging system not to raise exceptions if something goes wrong while formatting or emitting log messages. It only affects the project's internal Python test harness and has no bearing on real Lightning node operation, funds, network security, or production code.
Lower-prioritychore: Ensure the logging library does not get upset when output capture is disabled.by Christian Decker · eae521b1 · Jan 20, 2026 · 4 filesMessage 87 · StrongInformational 15Details
Commit message · Christian Decker
chore: Ensure the logging library does not get upset when output capture is disabled.
Changelog-Fixed: Testing infrastructure no longer fails when logging output capture is disabled.
87/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides an explanatory body✓ Mentions testing or verification
AI analysis · Informational 15/100
This commit only changes how the project's automated testing and build scripts set an environment variable (TEST_LOG_IGNORE_ERRORS=1). It tells the test logging library not to treat certain log-related issues as fatal during test runs. There is no change to the Core Lightning node software, wallet handling, network protocol, cryptography, or any code that runs in production. It is purely a testing-infrastructure convenience fix.
AI review queuedmsggen: add string_map typeby daywalker90 · 8bc2e76f · Jan 19, 2026 · 7 filesMessage 35 · OpaqueInformational 15Details
Commit message · daywalker90
msggen: add string_map type
35/100 · OpaqueMessage clarity
✓ Descriptive subject! No meaningful explanatory body
Why it was queued
second-pass: opaque commit message
AI analysis · Informational 15/100
This commit adds a new data type called 'string_map' to the code generator used for converting between Core Lightning's JSON-RPC interface and its gRPC/Rust interfaces. It is a feature addition for the message generator and testing schema validator, not a security fix or vulnerability patch.
AI review queuedclnrest: add clnrest-register-path method for dynamic pathsby daywalker90 · d03cf820 · Jan 19, 2026 · 25 filesMessage 65 · AdequateLow 39Details
Commit message · daywalker90
clnrest: add clnrest-register-path method for dynamic paths
Changelog-Added: clnrest: add clnrest-register-path rpc method to register dynamic paths
65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
second-pass: unusually broad change
AI analysis · Low 39/100
This commit adds a new feature to Core Lightning's REST plugin that lets plugin developers register custom web API paths. It is a feature addition rather than a fix for a known vulnerability. The change expands the attack surface of the REST API by allowing dynamic path registration, but it also includes optional rune-based access controls. There is no direct evidence in the commit of a security bug, though any dynamic routing feature introduces risks if paths are registered carelessly or if input validation is flawed.
Lower-priorityscript: Add Fedora as target for SHASUMS verificationby ShahanaFarooqui · 12ccfb5c · Jan 16, 2026 · 1 fileMessage 60 · AdequateInformational 17Details
Commit message · ShahanaFarooqui
script: Add Fedora as target for SHASUMS verification
60/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Mentions testing or verification! No meaningful explanatory body
Why it was queued
defensive validation
AI analysis · Informational 17/100
This commit simply adds 'Fedora' to the list of Linux distributions whose release binaries are checked against published checksums during the release verification script. It is a build-process expansion, not a code change, and introduces no security vulnerability.
Lower-prioritydocker: Added fixed SOURCE_DATE_EPOCH flag for reproducible Fedora buildby ShahanaFarooqui · ec7d247f · Jan 16, 2026 · 2 filesMessage 81 · StrongInformational 15Details
Commit message · ShahanaFarooqui
docker: Added fixed SOURCE_DATE_EPOCH flag for reproducible Fedora build
- Using environment variable `SOURCE_DATE_EPOCH` with fixed value will enforce a consistent timestamp for Fedora build. . Similar to Ubuntu fix in commit https://github.com/ElementsProject/lightning/commit/490fb0fc3b55284d47f8d391a7301c857e425b68 - Locked cargo version - Add `no-cache` to Fedora build
Changelog-Fixed: Core lightning builds for Fedora on all systems are deterministic.
81/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Links an issue, advisory, or supporting reference
AI analysis · Informational 15/100
This commit is a build-hardening change, not a security fix for a vulnerability. It makes Fedora release builds reproducible by pinning timestamps, locking the Rust compiler version, disabling a binary identifier that can vary between builds, and avoiding stale Docker cache. There is no indication it patches an exploitable flaw.
Lower-prioritycontrib: ignore cache when rebuilding docker builder imagesby Alex Myers · 9e490942 · Jan 16, 2026 · 1 fileMessage 65 · AdequateInformational 15Details
Commit message · Alex Myers
contrib: ignore cache when rebuilding docker builder images
This caused issues when dependencies were updated do to cached images continuing to be used.
Changelog-None
65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 15/100
This change adds a Docker command-line flag that forces builder images to be rebuilt from scratch instead of reusing cached layers. It is a build-hygiene fix to avoid stale cached images after dependency updates. There is no security vulnerability here.
Lower-prioritydoc: Update installation instruction on Fedoraby ShahanaFarooqui · ae0e1087 · Jan 16, 2026 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · ShahanaFarooqui
doc: Update installation instruction on Fedora
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit only updates the user documentation for installing Core Lightning on Fedora. It changes the recommended Fedora version from 27 to 39 and adds a few required build dependencies and tools (Rust, lowdown, PostgreSQL development files, etc.). There is no code change and no security issue in the commit itself.
Lower-prioritydocker: Update Fedora base image to 40by ShahanaFarooqui · 3f7565a3 · Jan 16, 2026 · 1 fileMessage 68 · AdequateInformational 15Details
Commit message · ShahanaFarooqui
docker: Update Fedora base image to 40
- Upgraded Fedora base image from 35 to 40. The existing Cargo failures were caused by the outdated Rust toolchain in Fedora 35. Cargo lockfile format v4 was introduced in Cargo 1.84 (December 2024), while Fedora 35 provides a Rust/Cargo version from roughly 2021–2022. As a result, the system Cargo could not parse modern Cargo.lock files, making it incompatible with current Rust projects.
- Added missing build dependencies to the Dockerfile, most notably the protobuf compiler (protoc).
Changelog-None: Upgraded Fedora version to 40 for reproducible build.
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 15/100
This commit updates a Fedora-based Docker builder image used for compiling Core Lightning. It moves from an old Fedora release (35) to a current one (40), adds missing build tools such as the protobuf compiler, and switches to a modern Rust toolchain via rustup so the build can understand newer Cargo lockfiles. There is no security flaw being fixed here; it is routine build-environment maintenance.
A bech32 address can be generated from a bip86 base so we should add both script types (p2wpkh, p2tr) to the txfilter for bip86 bases.
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 46/100
This change fixes a bug where Core Lightning's wallet scanner only watched for Taproot-style transactions for BIP86-derived keys, but missed ordinary SegWit v0 (P2WPKH) transactions. Because BIP86 keys can produce both address types, funds sent to a P2WPKH address derived from the same key would not be detected or credited. This is a correctness/loss-of-funds bug rather than an active theft vulnerability.
Security candidatehsmd: fix derivation for non-taproot addresses in modern mnemonic (25.12+) nodes.by Rusty Russell · 9b85ce7b · Jan 14, 2026 · 1 fileMessage 91 · StrongModerate 62Details
Commit message · Rusty Russell
hsmd: fix derivation for non-taproot addresses in modern mnemonic (25.12+) nodes.
This is a fix from https://github.com/rauaap who correctly diagnosed the problem:
``` Error broadcasting transaction: error code: -26\nerror message\nmempool-script-verify-flag-failed (Script failed an OP_EQUALVERIFY operation), input 0 of ... ```
The decision to use the changed derivation for all addresses, not just taproot, came up during review. Unfortunately, the signing code (here) was not changed to match the address generation code (in the wallet).
Reported-by: https://github.com/postanissue Fixes: https://github.com/ElementsProject/lightning/issues/8804 Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Fixed: lightningd: we now correctly sign for non-taproot addresses given by nodes created by v25.12 or newer.
91/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification✓ Links an issue, advisory, or supporting reference
Why it was queued
signing boundary
AI analysis · Moderate 62/100
This commit fixes a bug where Core Lightning nodes created with a modern mnemonic (version 25.12 or newer) could not correctly sign transactions that spend from non-Taproot on-chain addresses. The address generation code was updated to use a new key derivation method for all address types, but the signing code still only used that method for Taproot addresses. As a result, the private key used to sign did not match the public key in the address, causing transaction broadcast failures with an OP_EQUALVERIFY script error. The fix makes the signing code use the new derivation for all address types when the node uses the modern mnemonic format.
Security candidatelightningd: use BIP86 derivation for P2TR in HTLC rebroadcast change outputsby Sangbida Chaudhuri · 4b1f2a07 · Jan 14, 2026 · 1 fileMessage 50 · ThinLow 42Details
Commit message · Sangbida Chaudhuri
lightningd: use BIP86 derivation for P2TR in HTLC rebroadcast change outputs
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundary
AI analysis · Low 42/100
This change fixes how Core Lightning derives the public key used for 'change' outputs when rebroadcasting on-chain HTLC (Hashed Time-Locked Contract) transactions that pay to a Taproot (P2TR) address. Previously, the code always used the older BIP32 derivation even when the wallet was configured for the newer BIP86 Taproot-specific derivation. Using the wrong derivation path could produce a change output that the wallet does not recognize or cannot spend later, potentially locking up funds. The patch checks whether BIP86 is available and uses it for P2TR change outputs, falling back to BIP32 otherwise.
Security candidatelightningd: use bip86 derivation for anchor spend change outputsby Sangbida Chaudhuri · fa96b601 · Jan 14, 2026 · 1 fileMessage 50 · ThinInformational 23Details
Commit message · Sangbida Chaudhuri
lightningd: use bip86 derivation for anchor spend change outputs
50/100 · ThinMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
Why it was queued
signing boundary
AI analysis · Informational 23/100
This small change updates how Core Lightning creates the 'change' output when spending an anchor output in a Lightning channel. It now uses a newer, Taproot-specific key derivation method (BIP86) when available, instead of the older BIP32 method. The change itself is a correctness/hardening improvement for Taproot key handling, not a fix for an active exploit or a clearly disclosed vulnerability.
Lower-prioritylightningd: use BIP86 derivation in p2wpkh_for_keyidx when availableby Sangbida Chaudhuri · c1759037 · Jan 14, 2026 · 1 fileMessage 85 · StrongLow 31Details
Commit message · Sangbida Chaudhuri
lightningd: use BIP86 derivation in p2wpkh_for_keyidx when available
When a peer doesn't support OPT_SHUTDOWN_ANYSEGWIT, we fall back to P2WPKH for the shutdown script. For BIP86 wallets, we need to use bip86_pubkey for derivation (matching p2tr_for_keyidx), otherwise the resulting script won't be recognized after restart.
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
AI analysis · Low 31/100
This change fixes a wallet bug in Core Lightning. When closing a payment channel with a peer that only supports older Bitcoin address formats, the software was deriving the refund address using the wrong key path for modern BIP86 wallets. After a restart, the wallet might not recognize those funds because it looks for keys at the BIP86 path. The patch makes the fallback address use the same derivation method as modern Taproot addresses, so the wallet can always find the funds.
AI review queuedwallet: change dev_listaddrs to also list bip86 addressesby Sangbida Chaudhuri · e19fd5d6 · Jan 14, 2026 · 1 fileMessage 83 · StrongInformational 17Details
Commit message · Sangbida Chaudhuri
wallet: change dev_listaddrs to also list bip86 addresses
listaddrs is dev only and used in tests so it's okay if we change the API here, the usage is by positional arguments in tests so we're okay. Also changing est_option_upfront_shutdown_script to handle both old hsmsecret and the newer mnemonic one.
83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 17/100
This is a small developer-only change to a wallet debugging command. It makes the internal `dev_listaddrs` tool also work with newer BIP86-style wallets (mnemonic/seed-based), instead of only older BIP32-style wallets. There is no direct evidence this fixes an exploitable security bug; it appears to be a compatibility/API improvement for tests.
AI review queuedwallet: use correct derivation for elements when using mnemonic hsm_secret.by Rusty Russell · 29465f52 · Jan 14, 2026 · 1 fileMessage 73 · AdequateModerate 57Details
Commit message · Rusty Russell
wallet: use correct derivation for elements when using mnemonic hsm_secret.
Even though we don't do taproot addresses on elements yet, use the same scheme for simplicity and for future when we *do* do taproot.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Moderate 57/100
This change fixes how Core Lightning derives Bitcoin/Elements addresses when creating change outputs or PSBT outputs from a wallet seed phrase (mnemonic). Previously, on Elements sidechains, the code derived the public key one way and then built a SegWit address from it directly. Now it uses a dedicated helper that follows the same derivation path used elsewhere (including the future Taproot path). The practical risk is that change outputs could have been sent to addresses the wallet did not fully recognize or could not later spend from, which can lock up funds.