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 queuedpytest: test that we don't delete htlcs as soon as channel closed, wait for restart.by Rusty Russell · aa8d858c · Oct 2, 2025 · 1 fileMessage 75 · AdequateInformational 12Details
Commit message · Rusty Russell
pytest: test that we don't delete htlcs as soon as channel closed, wait for restart.
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 12/100
This commit only adds a new test to the test suite. It checks that old payment records (HTLCs) are not deleted from the database immediately when a channel closes, but are instead cleaned up later when the node restarts. There is no code change that fixes or changes any behavior.
Lower-prioritytests: skip certain tests if RUST is not enabledby Matt Whitlock · a05a3748 · Oct 2, 2025 · 5 filesMessage 78 · AdequateInformational 15Details
Changelog-Fixed: pytest: Tests that require Rust no longer fail if Rust is disabled.
78/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100
This commit only changes test code. It makes pytest skip certain tests when the software is built without Rust support, so those tests no longer fail in non-Rust builds. There is no change to the actual Lightning node or wallet code, and no security issue is introduced or fixed.
Lower-priorityupdate makefile to remove hsm_encryptionby Sangbida Chaudhuri · 084b0337 · Oct 1, 2025 · 1 fileMessage 45 · ThinInformational 15Details
Commit message · Sangbida Chaudhuri
update makefile to remove hsm_encryption
45/100 · ThinMessage clarity
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This commit removes one object file (hsm_encryption.o) from a fuzz-testing Makefile. It is a build/test maintenance change with no visible security relevance to the actual Core Lightning software.
RPC documentation is not syncing on readme server with error `uv: command not found`.
Changelog-None.
60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
Why it was queued
documentation-only discount
AI analysis · Informational 15/100
This commit adds a missing 'uv' tool installation step to an internal GitHub workflow that synchronizes RPC documentation to a readme server. It is a routine build/CI fix with no apparent security relevance.
Lower-prioritybookkeeper: fix reloading of rebalances.by Rusty Russell · 343d30ae · Oct 1, 2025 · 2 filesMessage 68 · AdequateInformational 21Details
Commit message · Rusty Russell
bookkeeper: fix reloading of rebalances.
Parse key correctly.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Fixed: bookkeeper: failed reload of rebalances on restart.
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Informational 21/100
This commit fixes a simple off-by-one bug in the bookkeeper plugin. When restarting, the plugin reloads saved 'rebalance' records from its database. The code was reading the wrong part of the database key, so it could not split the two stored numbers apart and would log a 'weird' error and skip the record. The fix changes one number so it reads the correct key segment. A previously-failing test is now enabled. There is no direct security exploit here; the main risk is that accounting records could be missing or inconsistent after a restart.
Lower-prioritybookkeeper: test (failing!) for rebalances on restart.by Rusty Russell · ea1d233d · Oct 1, 2025 · 1 fileMessage 83 · StrongLow 28Details
Commit message · Rusty Russell
bookkeeper: test (failing!) for rebalances on restart.
def only_one(arr): """Many JSON RPC calls return an array; often we only expect a single entry """ > assert len(arr) == 1 E AssertionError
```
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Low 28/100
This commit adds a new test that demonstrates a bug in Core Lightning's bookkeeping plugin: after a node restart, 'rebalance' fee records are lost and the plugin logs a 'BROKEN' warning about an unparsable datastore entry. The test is marked as expected-to-fail (xfail) so it documents the bug without breaking CI. It is a test-only change, not a fix, and there is no security exploit here.
Lower-priorityoffers: remove `blinding` from decode JSON-RPC.by Rusty Russell · ba75f7bc · Oct 1, 2025 · 2 filesMessage 68 · AdequateInformational 17Details
Commit message · Rusty Russell
offers: remove `blinding` from decode JSON-RPC.
Deprecated in 24.11, disabled in 25.05.
Changelog-Removed: JSON-RPC: `decode` field `blinding` (use `first_path_key` as per modern BOLT naming) 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
AI analysis · Informational 17/100
This commit removes an old JSON-RPC field named `blinding` from the `decode` command output. It was already renamed to `first_path_key` in a previous version and has now been fully removed after a deprecation period. This is a routine cleanup, not a security fix.
Lower-prioritylightningd: remove blinding field from onion_message_recv hook.by Rusty Russell · d73b60c5 · Oct 1, 2025 · 2 filesMessage 73 · AdequateInformational 21Details
Commit message · Rusty Russell
lightningd: remove blinding field from onion_message_recv hook.
Changelog-Removed: Plugins: `onion_message_recv` hook `blinding` field (use `first_path_key` as per modern BOLT 4 naming). 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, duplicate field name from a plugin hook used when receiving onion-routed messages. The field 'blinding' is being dropped in favor of the newer name 'first_path_key'. It is a planned API cleanup, not a security fix, and does not change how messages are processed or validated.
Lower-prioritylightningd: remove --experimental-quiesce and --experimental-offersby Rusty Russell · dfe6e3c2 · Oct 1, 2025 · 3 filesMessage 73 · AdequateInformational 15Details
Commit message · Rusty Russell
lightningd: remove --experimental-quiesce and --experimental-offers
Deprecated 24.11, disabled 25.05 (they're the default now).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Removed: Config: --experimental-offers and --experimental-quiesce (default since v24.11)
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 two old command-line flags, --experimental-quiesce and --experimental-offers, from the Core Lightning node software. These features became standard behavior in version 24.11, so the flags were only kept around temporarily to avoid breaking old configurations. There is no security issue here; it is ordinary cleanup of deprecated options.
AI review queueddoc: pretty!by Rusty Russell · 350af1a3 · Oct 1, 2025 · 1 fileMessage 33 · OpaqueInformational 15Details
Commit message · Rusty Russell
doc: pretty!
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
33/100 · OpaqueMessage clarity
✓ Subject identifies a change✓ Provides an explanatory body! Too few words to establish purpose
This commit only reformats a documentation table so the columns line up nicely. No code, no behavior, and no security-related changes are present.
AI review queuedBOLT12: Remove `start_any_period` from recurrence_base.by Rusty Russell · e7ea57e1 · Oct 1, 2025 · 17 filesMessage 73 · AdequateInformational 19Details
Commit message · Rusty Russell
BOLT12: Remove `start_any_period` from recurrence_base.
Offer_absolute_expiry should be used if you want to require starting at the start.
Changelog-EXPERIMENTAL: Protocol: BOLT 12 recurrence `start_any_period` removed, use expiry if you need to restrict when they can start using the offer.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 19/100
This commit removes an experimental BOLT12 feature called `start_any_period` from Core Lightning's offer recurrence system. It is a protocol/API cleanup change, not a security patch. The functionality is replaced by the existing `absolute_expiry` mechanism for restricting when offers can be used. There is no direct evidence in the commit of a vulnerability being fixed.
AI review queuedBOLT12: Update recurrence to latest spec draft.by Rusty Russell · 54444e43 · Oct 1, 2025 · 20 filesMessage 68 · AdequateLow 27Details
Commit message · Rusty Russell
BOLT12: Update recurrence to latest spec draft.
Changes: * Fields renumbered to their draft values + billion. * offer_recurrence now comes in compulsory or optional (backwards compat) flavors. * `proportional_amount` is now inside `offer_recurrence_base` not `offer_recurrence_paywindow`. * New field `invreq_recurrence_cancel`.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-EXPERIMENTAL: Draft specification for recurring offers changed: old recurring offers will no longer work.
68/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
parser or protocol pathsecond-pass: unusually broad changesecond-pass: security-sensitive path
AI analysis · Low 27/100
This commit updates Core Lightning's implementation of BOLT12 recurring payments to match a newer draft of the specification. It renumbers data fields, splits a setting into compulsory and optional versions, moves a proportional-amount setting into a different field, and adds a new invoice-request cancellation field. The changelog explicitly notes this is an experimental/draft feature change that breaks backward compatibility with old recurring offers. There is no direct evidence in the commit of a security vulnerability.
Lower-priorityplugins/fetchinvoice: allow use of expired offers *for recurrence*.by Rusty Russell · b30e0634 · Oct 1, 2025 · 3 filesMessage 73 · AdequateLow 32Details
Commit message · Rusty Russell
plugins/fetchinvoice: allow use of expired offers *for recurrence*.
We added this to the recurrence spec: the offer expiration only applies to the first request, not subsequent ones.
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 · Low 32/100
This change updates how Core Lightning handles recurring payment offers after they expire. Previously, an expired offer could not be used at all. Now, the first invoice request must still happen before expiration, but follow-up recurring payments can continue even after the offer's expiration date. This is an intentional spec change, not a security bug, but it slightly loosens a time-based restriction.
Lower-priorityoffers: allow quantity_max = 1by Rusty Russell · 75e6c499 · Oct 1, 2025 · 1 fileMessage 58 · ThinInformational 19Details
Commit message · Rusty Russell
offers: allow quantity_max = 1
If you're doing just-in-time stock management, it would be annoying to discover this wasn't allowed!
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit removes a small restriction in Core Lightning's BOLT 12 'offers' feature. Previously, when creating an offer, you were not allowed to set 'quantity_max' to exactly 1. The code now permits that value. The change is described by the author as a convenience for just-in-time stock management, not as a security fix. There is no evidence in the commit or supplied references that this addresses a vulnerability.
Lower-prioritytools: I cannot spell recurrEnce.by Rusty Russell · 92a69619 · Oct 1, 2025 · 1 fileMessage 60 · AdequateInformational 15Details
Commit message · Rusty Russell
tools: I cannot spell recurrEnce.
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 15/100
This commit adds a spelling check to the project's tooling. It prevents developers from misspelling the word 'recurrence' as 'recurrance' in the codebase. There is no security relevance.
Lower-priorityBOLT12: Remove years from recurrence.by Rusty Russell · 05005475 · Oct 1, 2025 · 7 filesMessage 60 · AdequateInformational 21Details
Commit message · Rusty Russell
BOLT12: Remove years from recurrence.
Use months instead.
Changelog-EXPERIMENTAL: Protocol: BOLT 12 recurrence `years` removed; use 12 x months.
60/100 · AdequateMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Provides an explanatory body
AI analysis · Informational 21/100
This commit removes the 'years' time unit from BOLT 12 recurring payment offers in Core Lightning, replacing it with 12-month equivalents. It is a protocol alignment change for an experimental feature, not a security fix. There is no indication it addresses an active vulnerability or attack.
Lower-priorityplugins/fetchinvoice: allow send_message() to say "don't expect a reply"by Rusty Russell · 5a73bd34 · Oct 1, 2025 · 1 fileMessage 73 · AdequateInformational 18Details
Commit message · Rusty Russell
plugins/fetchinvoice: allow send_message() to say "don't expect a reply"
We're going to want this for sending invreq_recurrence_cancel invoice_requests.
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 18/100
This is a small, preparatory code change in Core Lightning's invoice-fetching plugin. It lets the plugin send a message without asking the recipient to send a reply back. The change itself does not fix a bug or close a security hole; it adds a capability that will be used later for canceling recurring invoice requests. There is no direct security impact visible in this commit.
Lower-prioritywire: update to slight spec neating.by Rusty Russell · 512f3287 · Oct 1, 2025 · 4 filesMessage 60 · AdequateInformational 15Details
Commit message · Rusty Russell
wire: update to slight spec neating.
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 15/100
This commit is a simple renaming of a field and its comments from 'max_period' to 'max_period_index' to match a minor BOLT12 specification wording cleanup ('spec neating'). There is no functional code change, no bug fix, and no security relevance.
Lower-priorityplugins/offers: handle invoice_request with invreq_recurrence_cancelby Rusty Russell · 5e53af7d · Oct 1, 2025 · 3 filesMessage 73 · AdequateLow 45Details
Commit message · Rusty Russell
plugins/offers: handle invoice_request with invreq_recurrence_cancel
In this case, we make an immediately-expiring invoice. This correctly blocks any successive requests for invoices, as per the spec requirement.
This means we have to handle invoice_requests without reply_path, amounts or quantity *if* they specify invreq_recurrence_cancel.
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 · Low 45/100
This commit adds support for cancelling recurring Lightning invoices. Previously, the code rejected invoice requests that lacked a reply path, amount, or quantity. Now, if the request carries the special 'invreq_recurrence_cancel' flag, those requirements are relaxed and the node creates an immediately-expiring invoice instead of returning a usable one. This is a protocol-compliance change that prevents a cancelled recurring invoice from being paid again.
Lower-prioritycommon: fix bolt12 quotes to bring them up-to-date.by Rusty Russell · 559e3fc4 · Oct 1, 2025 · 5 filesMessage 65 · AdequateInformational 20Details
Commit message · Rusty Russell
common: fix bolt12 quotes to bring them up-to-date.
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
AI analysis · Informational 20/100
This commit updates Core Lightning's BOLT12 (recurring payment offers) implementation to match the latest specification wording and field names. It is primarily a code-comment and logic-alignment change, not a fix for a known active exploit. One small functional tightening is added: when an invoice request is not recurring, the code now also rejects a previously-allowed `invreq_recurrence_cancel` field. The rest of the changes rename internal checks to match the current spec and adjust when recurrence is detected, which could subtly change validation behavior for recurring offers.
Lower-priorityplugins/fetchinvoice: extract bip353 parsing to param helper.by Rusty Russell · 4e7c2fcf · Oct 1, 2025 · 1 fileMessage 65 · AdequateInformational 15Details
Commit message · Rusty Russell
plugins/fetchinvoice: extract bip353 parsing to param helper.
We're going to want this for cancelrecurringinvoice.
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
AI analysis · Informational 15/100
This commit is a simple code cleanup: it moves the logic that parses BIP 353 human-readable names (like ₿name@domain.com) into a reusable helper function. The same validation rules are applied in the same order, and the behavior is unchanged. There is no security fix here.
Lower-priorityplugins: `cancelrecurringinvoice` command.by Rusty Russell · 0d18b82d · Oct 1, 2025 · 7 filesMessage 58 · ThinInformational 15Details
Commit message · Rusty Russell
plugins: `cancelrecurringinvoice` command.
`fetchinvoice` variant, for setting invreq_recurrence_cancel instead.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-EXPERIMENTAL: `cancelrecurringinvoice` command to send new "don't expect any more invoice requests" msg to recurring bolt12 invoices.
This commit adds a brand-new experimental RPC command called cancelrecurringinvoice to Core Lightning. It lets a user politely tell a recurring BOLT 12 invoice issuer 'please stop sending me further invoices.' The change is purely additive: it introduces a new command, its documentation, and the code to build and send a cancellation message. Nothing in the commit removes protections, weakens authentication, or changes existing behavior of other commands.
Lower-priorityplugins/fetchinvoice: extract recurrence invreq_metadata routine.by Rusty Russell · 551ecdf7 · Oct 1, 2025 · 1 fileMessage 65 · AdequateInformational 15Details
We're going to want this for cancelrecurringinvoice.
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
AI analysis · Informational 15/100
This commit simply moves an existing block of code into a new helper function without changing what the code does. It is a routine code cleanup (refactoring) in preparation for a future feature called cancelrecurringinvoice. There is no security-relevant change visible in this patch.
Lower-priorityoffers: use param_check() for more thorough parameter validation.by Rusty Russell · 6476347c · Oct 1, 2025 · 2 filesMessage 65 · AdequateLow 28Details
Commit message · Rusty Russell
offers: use param_check() for more thorough parameter validation.
And fix incorrect comment on its use in the header!
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
AI analysis · Low 28/100
This commit tightens parameter validation in the 'offers' plugin of Core Lightning. It swaps a less strict validation helper for a stricter one and ensures that when the command is only being checked (not actually executed), the plugin reports completion correctly. The change also fixes an outdated comment describing the stricter helper. There is no direct evidence in the commit of an exploitable security bug, but the change removes a validation gap that could in principle let malformed or incomplete offers slip through.
Lower-prioritygossmap: disable mmap on any read error.by Rusty Russell · e2cf4f80 · Oct 1, 2025 · 1 fileMessage 68 · AdequateLow 41Details
Commit message · Rusty Russell
gossmap: disable mmap on any read error.
This can happen with other subdaemons too, on ZFS on Linux:
``` 2025-09-24T13:51:22.703Z **BROKEN** connectd: Bad checksum on gossmap record @9850670/9851114 should be 3379961343 (01009411e26cd56d68aabc285ee1c8ee43d59be6f939b0ce353d80213918680a7438356b9c5ea6bb001a6bb37a4dea93776f4abc8cd371525b4d1605a74b89d7cb1bfc8865ddf22288c7ea08b9d98b34155b4aed159eb81732957e6bf79b996752bf2a9995aaead1d65e7889e826ea0ba42f7746c176fe12f2fe6c04af1a74b4f0a262d20efd57133eb32693c789eb3f09caf4f4c6ecd2f734b3b36e751ffcc2748c58feabce4173c4ce6098a2c5397aabf1be5442cb67b5030be11ebd8b9841838dae127fe30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 ```
Reported-by: @grubles 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
AI analysis · Low 41/100
This change makes Core Lightning's network-map reader (gossmap) stop using memory-mapped file access whenever it hits a read error or bad checksum. On some filesystems like ZFS on Linux, mmap can return stale or partially written data, which makes the daemon think the gossip store is corrupt. The patch falls back to ordinary read calls, which should see the correct data. It is a robustness fix for a reliability problem rather than a clear-cut security vulnerability.