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.
AI review queuedwallet: remove notification on duplicate chain entries.by Rusty Russell · 2372dbda · Aug 19, 2025 · 1 fileMessage 65 · AdequateInformational 15Details
Commit message · Rusty Russell
wallet: remove notification on duplicate chain entries.
We don't need it now bookkeeper uses the list commands.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
65/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit removes a notification that was previously sent when the wallet tried to record a blockchain movement that it had already seen. The change is described as cleanup because another component (bookkeeper) now uses list commands instead of relying on this duplicate notification. There is no direct evidence in the commit that this fixes an active security vulnerability.
AI review queuedwallet: generate fixup chainmoves and channelmoves when first starting.by Rusty Russell · 194febe8 · Aug 19, 2025 · 10 filesMessage 73 · AdequateInformational 22Details
Commit message · Rusty Russell
wallet: generate fixup chainmoves and channelmoves when first starting.
If we don't have an accountdb from bookkeeper:
1. Generate a deposit chain event for every confirmed UTXO. 2. Generate an open chain event for every open, confirmed channel. 3. Generate a push/lease event if necessary. 4. Generate a fixup "journal" entry if balance is different from initial.
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 · Informational 22/100
This commit finishes a previously-stubbed database migration that invents historical accounting records ('coin movements') for nodes that never ran the optional bookkeeper plugin. It does not change how funds are secured on the blockchain; it only backfills internal ledger entries so balances displayed by the accounting plugin look correct after an upgrade. There is no obvious way for an external attacker to exploit it, but any migration that writes made-up ledger entries carries a risk of miscounting funds or confusing downstream tools if the invented numbers are wrong.
AI review queuedlightningd: add chainmoves and channelmoves to wait command.by Rusty Russell · 6c626b12 · Aug 19, 2025 · 20 filesMessage 73 · AdequateInformational 18Details
Commit message · Rusty Russell
lightningd: add chainmoves and channelmoves to wait command.
Only makes sense to wait on creation, since they neither are deleted nor updated.
We also enhance the list commands to take the standard index options.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Added: JSON-RPC: `wait`: new subsystems `chainmoves` and `channelmoves`.
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: unusually broad changesecond-pass: security-sensitive path
AI analysis · Informational 18/100
This commit adds two new notification categories, 'chainmoves' and 'channelmoves', to the existing 'wait' command in Core Lightning. It also lets users paginate the related list commands with standard index options. There is no indication this fixes a security bug; it appears to be a normal feature addition.
AI review queuedlightningd: new internal-use commands to allow utxo spend / deposit injection.by Rusty Russell · 254b7ed6 · Aug 19, 2025 · 7 filesMessage 73 · AdequateInformational 21Details
Commit message · Rusty Russell
lightningd: new internal-use commands to allow utxo spend / deposit injection.
For the moment, we'll continue to use bookkeeper to monitor the notifications to insert these (we don't have the internal infrastructure for that, and actually these commands are probably better than using notifications).
We hoist param_outpoint() into common code, since there are already two uses.
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
second-pass: broader security terminology
AI analysis · Informational 21/100
This commit adds two new internal-only JSON commands, injectutxodeposit and injectutxospend, that let the bookkeeper plugin manually insert records of coins moving into or out of the node's accounting ledger. It also moves a helper for parsing outpoints into shared code. There is no direct evidence in the commit that these commands are exposed to untrusted users or that they introduce a vulnerability, but any command that can write arbitrary ledger entries deserves careful access control review.
AI review queuedreckless: reduce uv verbosity and avoid flooding outputby Alex Myers · 79b56958 · Aug 18, 2025 · 1 fileMessage 73 · AdequateInformational 21Details
Commit message · Alex Myers
reckless: reduce uv verbosity and avoid flooding output
This was overloading the reckless-rpc plugin input when outputting json all in one shot. The verbosity was mostly dependency resolution which wasn't all that helpful so call uv pip install as normal.
Changelog-None: bug introduced this release.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
second-pass: broader security terminology
AI analysis · Informational 21/100
This commit fixes a bug in Core Lightning's 'reckless' plugin installer tool. The bug was that very verbose dependency-resolution output from the 'uv' Python package manager was being dumped all at once as JSON to the reckless-rpc plugin, potentially overloading it. The fix both removes the verbose '-v' flag from uv and adds a rate-limiting helper that prints large JSON output in small chunks with tiny delays. It is a reliability/DoS-style bug fix, not a code-execution vulnerability.
AI review queuedlibplugin: correctly wrap notifications we send in the notification name.by Rusty Russell · 5d5741e6 · Aug 18, 2025 · 11 filesMessage 73 · AdequateLow 26Details
Commit message · Rusty Russell
libplugin: correctly wrap notifications we send in the notification name.
All the core notifications changed over to wrapping the notification fields in an object with the name of the notification, but notifications from plugins were missed.
Changelog-Added: Plugins: `channel_hint_update`, `pay_failure` and `pay_success` notifications now have objects of the same name containing the expected fields. Changelog-Deprecated: Plugins: `channel_hint_update`, `pay_failure` and `pay_success` notification fields outside the same-named object. 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 · Low 26/100
This commit fixes a notification formatting inconsistency in Core Lightning's plugin system. Plugin-generated notifications (channel_hint_update, pay_failure, pay_success) now wrap their data inside an object named after the notification, matching how core notifications already work. The old unwrapped format is kept as a deprecated option for backward compatibility. This is primarily an API consistency and compatibility fix, not a security vulnerability fix.
AI review queueduse json_escape_unescape_len()by Matt Whitlock · c28f5e70 · Aug 15, 2025 · 4 filesMessage 48 · ThinInformational 20Details
Commit message · Matt Whitlock
use json_escape_unescape_len()
This avoids making an extra copy of the escaped string.
Note that jsonrpc_command_add() no longer accepts usage strings containing invalid escape sequences. (Previously, it would quietly accept such a string without unescaping anything.)
Changelog-None
48/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides detailed explanatory context! Too few words to establish purpose
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 20/100
This is a small code cleanup that switches to a helper function which unescapes JSON strings without making an extra copy. The only behavior change is that invalid escape sequences in command usage strings are now rejected instead of silently accepted unchanged. There is no obvious security vulnerability being fixed, and no evidence of an exploit or disclosure.
AI review queuedcommon/coin_mvt: add struct mvt_account_id to separate channels from others.by Rusty Russell · 6fc0b1f3 · Aug 14, 2025 · 13 filesMessage 73 · AdequateInformational 17Details
Commit message · Rusty Russell
common/coin_mvt: add struct mvt_account_id to separate channels from others.
This means we can keep a pointer to the channel directly, *or* a string. This avoids gratuitous formatting (on creation) and lookups (later).
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 · Informational 17/100
This commit is a code-quality refactor in Core Lightning's internal accounting system. It replaces formatted channel ID strings with direct pointers to channel objects, and introduces a small helper structure that can hold either a channel pointer or an alternative account name. The change removes unnecessary string formatting and lookups, and updates the wire serialization format for on-chain coin movement records. There is no indication of a security vulnerability being fixed or introduced.
AI review queuedcommon: put "external" and "wallet" strings, and test functions into common/coin_mvt.hby Rusty Russell · b0231a59 · Aug 14, 2025 · 12 filesMessage 75 · AdequateInformational 15Details
Commit message · Rusty Russell
common: put "external" and "wallet" strings, and test functions into common/coin_mvt.h
They're scattered and reproduced in many places: unify them.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
75/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body✓ Mentions testing or verification
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit is a straightforward code cleanup: it moves the literal strings 'external' and 'wallet', plus small helper functions that test account names, into a single shared header file. Previously these strings and functions were duplicated across many files. There is no change to program behavior, no bug fix, and no security-related change.
AI review queuedcommon/coin_mvt: make more parameters const.by Rusty Russell · f4ac8fcc · Aug 14, 2025 · 6 filesMessage 60 · AdequateInformational 15Details
Commit message · Rusty Russell
common/coin_mvt: make more parameters const.
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
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit only adds the C keyword 'const' to function parameters and test stubs. It does not change any program logic, data flow, or behavior. It is a code-quality/cleanup change with no security relevance.
AI review queuedlightningd: use channel_coin_mvt / chain_coin_mvt directly for notifications.by Rusty Russell · 45678aaf · Aug 14, 2025 · 7 filesMessage 73 · AdequateInformational 12Details
Commit message · Rusty Russell
lightningd: use channel_coin_mvt / chain_coin_mvt directly for notifications.
Rather than converting to a generic coin_mvt struct, use these directly in the notification, which is more explicit.
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 · Informational 12/100
This is a routine internal code cleanup in Core Lightning. It changes how the node reports coin movements (on-chain and channel transactions) to plugins, switching from a single generic data structure to two more specific ones. There is no indication this fixes a security bug or introduces a vulnerability.
AI review queuedcoin_mvt: use bitmap instead of tal_arr for tags.by Rusty Russell · 8c315c15 · Aug 14, 2025 · 14 filesMessage 80 · StrongInformational 15Details
Commit message · Rusty Russell
coin_mvt: use bitmap instead of tal_arr for tags.
We're going to store them in the db this way, so I thought I'd see what it looks like if we lift that interface all the way through.
We use a struct, so that types are checked strictly.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit is a straightforward internal refactoring: it replaces a variable-length list of text labels (called a 'tal_arr') with a compact 64-bit bitmap (a 'struct mvt_tags') for tracking coin-movement tags. The change touches many call sites but does not alter what the tags mean, how money moves, or any security boundary. It is not a security fix and introduces no obvious vulnerability.
AI review queueddb: hand amount_msat / amount_sat by copy, not pointer.by Rusty Russell · b8b1d45d · Aug 14, 2025 · 5 filesMessage 73 · AdequateInformational 17Details
Commit message · Rusty Russell
db: hand amount_msat / amount_sat by copy, not pointer.
This is how we handle amount_msat and amount_sat everywhere these days, and this wasn't updated.
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 · Informational 17/100
This commit changes several database helper functions so they receive monetary amounts by copy (passing the value directly) instead of by pointer (passing a memory address). The commit message says this is just to match how the rest of the codebase now handles these types. There is no direct evidence in the diff or message that this fixes a security bug; it appears to be a code-consistency cleanup. Passing by copy can sometimes prevent certain classes of mistakes (for example, accidentally passing a NULL pointer or a pointer to uninitialized memory), but the diff does not show any such bug being fixed.
AI review queuedcommon: rename enum mvt_tag values.by Rusty Russell · 5756b54f · Aug 14, 2025 · 13 filesMessage 60 · AdequateInformational 15Details
Commit message · Rusty Russell
common: rename enum mvt_tag values.
Prefix MVT_ to them, for clarity.
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
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit is a simple code cleanup: it renames a set of internal bookkeeping labels (called enum mvt_tag values) so they all start with 'MVT_'. For example, CHANNEL_OPEN becomes MVT_CHANNEL_OPEN. The change touches many files but only renames symbols; it does not alter program logic, data formats, network behavior, or security checks.
AI review queuedcommon: mvt_tag parsing routine.by Rusty Russell · bafda5ce · Aug 14, 2025 · 13 filesMessage 50 · ThinInformational 18Details
Commit message · Rusty Russell
common: mvt_tag parsing routine.
Rather than open-coding in json_parse.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
50/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides an explanatory body
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 18/100
This commit is a straightforward internal code cleanup: it moves the logic for converting a text tag into an internal coin-movement tag out of the JSON parser and into a dedicated helper function. There is no visible security fix, behavior change, or vulnerability being addressed.
AI review queuedlightningd: Add extra_tlvs to htlc_accepted_hookby Peter Neuroth · 2264b93c · Aug 14, 2025 · 7 filesMessage 68 · AdequateLow 38Details
Commit message · Peter Neuroth
lightningd: Add extra_tlvs to htlc_accepted_hook
Add serializing and deserializing of the extra tlvs to to the htlc_accepted_hook to allow plugin users to replace the tlv stream that is attached to the update_add_htlc message on forwards.
Signed-off-by: Peter Neuroth <pet.v.ne@gmail.com>
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
signing or wallet pathsecond-pass: broader security terminologysecond-pass: security-sensitive path
AI analysis · Low 38/100
This commit adds a new plugin hook feature to Core Lightning that lets plugins inspect and replace optional extra data (TLV fields) attached to forwarded Lightning payments. It is a feature addition, not a direct bug fix. The code includes validation of those extra fields and a note that they are not saved to the database. There is no claim in the commit that this fixes a security vulnerability.
AI review queuedchanneld: Add extra_tlvs to incomming wire msgby Peter Neuroth · ef52de88 · Aug 14, 2025 · 6 filesMessage 68 · AdequateLow 26Details
Commit message · Peter Neuroth
channeld: Add extra_tlvs to incomming wire msg
This appends the extra_tlvs to the internal channeld_offer_htlc wire msg. We also recombine the extra_tlvs with the blinded path key for forwarding htlcs.
Signed-off-by: Peter Neuroth <pet.v.ne@gmail.com>
68/100 · AdequateMessage clarity
✓ 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 · Low 26/100
This commit changes how Core Lightning passes extra data fields (TLVs) when forwarding or storing payment instructions inside the channel daemon. It adds a new field to an internal message and recombines those extra fields with a blinding key before the HTLC is added to the channel. There is no direct evidence in the commit that this fixes a security bug; it appears to be a protocol-correctness or feature-completeness change for blinded routes.
AI review queuedcln-bip353: add plugin that fetches payment instructions from human readable addressesby daywalker90 · e3e41163 · Aug 14, 2025 · 21 filesMessage 65 · AdequateLow 33Details
Commit message · daywalker90
cln-bip353: add plugin that fetches payment instructions from human readable addresses
Changelog-Add: new plugin cln-bip353 that can fetch BIP-353 payment instructions from human readable addresses
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 33/100
This commit adds a brand-new plugin called cln-bip353 to Core Lightning. The plugin lets users look up Bitcoin/Lightning payment instructions from human-readable addresses like send.some@satsto.me using DNS (BIP-353). It also exposes a new RPC command and gRPC method named fetchbip353. Because this is a large feature addition touching RPC, gRPC, generated Python code, documentation, and tests, it increases the attack surface of the node: any bugs in DNS resolution, DNSSEC proof handling, or parsing of returned payment instructions could affect the node. However, the commit itself is a feature addition, not a documented security fix, and no specific vulnerability is visible in the diff.
AI review queuedcommon/json_parse_simple: make convenience functions inlineby Matt Whitlock · 9112c1d5 · Aug 14, 2025 · 7 filesMessage 85 · StrongInformational 18Details
Commit message · Matt Whitlock
common/json_parse_simple: make convenience functions inline
json_tok_streq(…) and json_get_member(…) are convenience wrappers for json_tok_strneq(…) and json_get_membern(…) respectively. Unfortunately, using them incurs a performance penalty in the common case where they are called with a string literal argument because the compiler is unable to substitute a compile-time constant in place of the buried call to strlen(…).
…because the former is forced to scan over "example" at run-time to count its length whereas the latter is able to elide the strlen(…) call at compile time.
Hoist these convenience functions up into common/json_parse_simple.h and mark them as inline so that the compiler can elide the strlen(…) call in the common case of calling these functions with a string literal argument.
Changelog-None
85/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 18/100
This change moves two helper functions from a source file into a header file and marks them 'inline' so the compiler can optimize common calls. It is a performance cleanup, not a security fix. The functions behave the same way as before; only how the compiler sees them changes. Test stub files are updated to match the new internal layout.
AI review queuedlightningd: require local_alias in new_channel().by Rusty Russell · 5e263bac · Aug 14, 2025 · 7 filesMessage 68 · AdequateLow 25Details
Commit message · Rusty Russell
lightningd: require local_alias in new_channel().
We allowed NULL for stub channels, but just don't put the stub scid into the hash tables. This cleans up all the callers to make it clear this is a non-optional parameter.
We opencode channel_set_random_local_alias, since there's only one caller now.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
68/100 · AdequateMessage clarity
✓ 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 · Low 25/100
This commit is a code-cleanup change in Core Lightning that makes the local channel alias a required value when creating a channel record, instead of allowing it to be optional/NULL. It removes a fallback that generated a random alias if one was missing. The change is defensive: it ensures every channel has a known local alias and avoids subtle bugs where a missing alias could lead to inconsistent channel lookup tables. There is no direct evidence in the commit or supplied references that this fixes an active security vulnerability.
AI review queuedbitcoin: have random_scid() function.by Rusty Russell · 639452ac · Aug 14, 2025 · 5 filesMessage 50 · ThinInformational 15Details
Commit message · Rusty Russell
bitcoin: have random_scid() function.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
50/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides an explanatory body
Why it was queued
signing or wallet pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit is a small code cleanup: it creates a shared helper function called random_scid() that generates a random channel identifier, and replaces two places that previously did this directly with calls to the new helper. It also adds a couple of test setup lines so wallet tests don't reuse stale channel maps. There is no security fix here—just refactoring and test hygiene.
AI review queuedwallet: we can assume local_alias field is non-null.by Rusty Russell · bb4dda6f · Aug 14, 2025 · 3 filesMessage 73 · AdequateLow 26Details
Commit message · Rusty Russell
wallet: we can assume local_alias field is non-null.
We have a migration which ensures this, but then I discovered that did *not* address channels without an SCID yet. So fixed the migration, and simpligied the code.
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 · Low 26/100
This commit fixes a database migration in Core Lightning that was supposed to ensure every channel has a local alias (a routing identifier), but it missed channels that didn't yet have a stable channel ID (SCID). The patch moves and broadens the migration so all channels without a local alias get one, and then simplifies the code to always expect the field to be present. It is a data-integrity bug fix rather than an obvious remote exploit, but if a channel lacked a local alias it could lead to inconsistent routing behavior or crashes in later code paths that assume the alias exists.
AI review queuedlightningd: save previous short_channel_ids during splice, and keep in db.by Rusty Russell · 4abd0af3 · Aug 14, 2025 · 8 filesMessage 73 · AdequateInformational 23Details
Commit message · Rusty Russell
lightningd: save previous short_channel_ids during splice, and keep in db.
There can be any number of these, and it will be useful to allow routing by older scids (when other nodes haven't seen our gossip, or even before we *can* announce the new post-splice channel).
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 · Informational 23/100
This commit adds bookkeeping for previous channel identifiers (short_channel_ids) when a Lightning channel is spliced. Splicing changes the channel's identifier, so the software now remembers old identifiers in memory and in the wallet database. This is a routing/reliability improvement, not a security fix, and the commit message does not describe any vulnerability.
AI review queuedwallet: remove now-gratuitous counters from update statements.by Rusty Russell · 51d6afec · Aug 14, 2025 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Rusty Russell
wallet: remove now-gratuitous counters from update statements.
When we had to use the number to the db_bind call, these annotations made sense, but since 0bcff1e76d6796e20a26c883ad83bc8fad17efeb (for v23.08) we removed that.
So remove all the counters, which are simple overhead if we want to change something.
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 · Informational 15/100
This commit simply removes inline number comments (like '// 0', '// 1') from SQL UPDATE statements in the wallet code. These numbers used to help match database bind parameters, but are no longer needed after an earlier code change. There is no functional change to the program's behavior, no bug fix, and no security relevance.
AI review queuedpytest: refactor reckless check_stderrby Alex Myers · 542b54c6 · Aug 11, 2025 · 1 fileMessage 35 · OpaqueInformational 15Details
Commit message · Alex Myers
pytest: refactor reckless check_stderr
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 is a minor internal cleanup of a test helper. It moves an existing stderr-checking function into a class method and slightly expands the list of harmless warning strings that tests ignore. It does not change any production code, network behavior, or security logic.