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-prioritytools/generate-wire.py: don't set TLV fields to NULL if they're empty.by Rusty Russell · eefc9b9a · Apr 30, 2026 · 1 fileMessage 83 · StrongLow 35Details
Commit message · Rusty Russell
tools/generate-wire.py: don't set TLV fields to NULL if they're empty.
There's a new BOLT 12 test, which checks that the ->currencies array isn't empty. We were treating it as missing, which is wrong. So allocate empty arrays when they appear, instead of setting them to NULL.
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 35/100
This is a one-line code generator fix in Core Lightning's wire protocol tooling. Previously, when a variable-length array field (common in newer Lightning protocol messages like BOLT 12) had zero elements, the generated code set the pointer to NULL. Now it always allocates an empty array. This corrects behavior where an empty-but-present list could be mistaken for a missing list, which could cause protocol compliance failures or logic errors in BOLT 12 features.
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 simply adds a missing CI (continuous integration) check back into the project's Makefile. The check verifies that quotes from the BOLT specification are still accurate in the source code. It is a build/process fix with no security relevance to running Lightning nodes.
Lower-priorityxpay: don't use MPP for bolt12 unless the invoice explicitly supports it.by Rusty Russell · e3709649 · Apr 30, 2026 · 3 filesMessage 73 · AdequateLow 36Details
Commit message · Rusty Russell
xpay: don't use MPP for bolt12 unless the invoice explicitly supports it.
We actually changed this by default last release, and nobody noticed!
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 36/100
This change removes a deprecated option that let Core Lightning's xpay plugin split BOLT12 invoice payments into multiple parts even when the invoice did not explicitly allow it. Going forward, xpay will respect the invoice's feature flags and avoid multi-part payments unless permitted. The commit notes this behavior actually changed by default in the previous release without anyone noticing, and this patch cleans up the leftover override and deprecation.
Lower-priorityCI: check that wire format is correct.by Rusty Russell · cc9b18b3 · Apr 30, 2026 · 1 fileMessage 80 · StrongInformational 15Details
Commit message · Rusty Russell
CI: check that wire format is correct.
Regenerate the CSV files from the specs, apply the wire/extracted*.patch files and make sure they are up-to-date.
This catches people editing the files: if you want to change them, you have to create a new patch file.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
80/100 · StrongMessage clarity
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context
AI analysis · Informational 15/100
This commit adds a new automated CI check that ensures wire protocol CSV files and their associated patches stay in sync with the official BOLT specifications. It does not change any runtime code, protocol handling, or user-facing behavior. It is purely a build/validation improvement to catch manual edits that should instead go through patch files.
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 updates the version of the Lightning BOLT specification used by Core Lightning and adds a test case for a new BOLT #11 example that includes a Taproot (P2TR) fallback address. It does not change production code behavior; it only adds test coverage for parsing a Taproot fallback in a BOLT11 invoice. There is no direct security vulnerability visible in the diff.
Lower-priorityBOLTs: more textual changes.by Rusty Russell · 671068a5 · Apr 30, 2026 · 7 filesMessage 50 · ThinInformational 15Details
Commit message · Rusty Russell
BOLTs: more textual changes.
Attributable errors and some reordering, but nothing beyond text changes for us.
50/100 · ThinMessage clarity
✓ Descriptive subject✓ Provides an explanatory body
AI analysis · Informational 15/100
This commit only updates comments, documentation strings, and the order of wire protocol definitions to match a newer version of the Lightning specification (BOLTs). No actual program logic, checks, or behavior were changed. It is not a security fix.
This commit changes how Core Lightning advertises support for two Lightning network features: 'payment_secret' and 'option_channel_type'. Previously these were actively announced as supported; now the code treats them as assumed to be supported by all modern nodes. The commit message notes a caveat: payment secrets still won't be present in 'keysend' payments, which don't use them. This is a protocol-level behavior change, not a fix for an active vulnerability, and the commit itself does not describe any security issue.
Document how to update to the latest bolts, and how to remove deprecated features.
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
documentation-only discount
AI analysis · Informational 15/100
This commit only updates the project's internal documentation checklist used after making a software release. It adds instructions for updating version numbers, test files, compatibility tools, and how to remove old deprecated features. There is no code change and no security issue.
Security candidatelightning-downgrade: prepare for downgrading to v26.04.by Rusty Russell · cc8c043f · Apr 30, 2026 · 2 filesMessage 65 · AdequateInformational 15Details
Commit message · Rusty Russell
lightning-downgrade: prepare for downgrading to v26.04.
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
update trustsigning or wallet path
AI analysis · Informational 15/100
This commit is routine release bookkeeping. It adds a new version marker (v26.04) to the downgrade tool and a comment in the database migration list so that users who later downgrade from v26.04 to an earlier release have the correct metadata. There is no bug fix, behavior change, or security-sensitive code change.
✓ Descriptive subject✓ Names a concrete action or component! No meaningful explanatory body
AI analysis · Informational 15/100
This commit is a trivial documentation-only fix in a source code comment. It adds a missing comment-closing marker so that a block of text describing protocol feature bits is properly formatted. No executable code, logic, or behavior was changed.
Security candidateBOLT quotes: split cross-section quotes; prepare for new `...` semantics.by Rusty Russell · 07d1db00 · Apr 30, 2026 · 11 filesMessage 83 · StrongInformational 15Details
Commit message · Rusty Russell
BOLT quotes: split cross-section quotes; prepare for new `...` semantics.
The new check_quotes.py tool will treat `...` at the start of a quote as "immediately follows previous quote in BOLT text". To prepare for that, we change existing quotes which used leading `...` to mean "skip some text": split them into two consecutive BOLT comments (the second starting with `...` to use the existing wildcard match), and add explicit `*...` markers between consecutive BOLT test vector sections which cross `# From` headers.
Also remove leading `...` from nonce quotes in cryptomsg.c/handshake.c where the actual BOLT text starts a fresh sentence (no prior quote in file).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> sCo-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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
fuzzing or regression evidencecryptography-sensitive path
AI analysis · Informational 15/100
This commit is a documentation and code-comment cleanup. It splits BOLT (Bitcoin Lightning specification) quote comments so a new internal tool can check them more accurately, and removes a few stray leading ellipses from comments. There is no change to actual program logic, network behavior, or security-sensitive code.
Update outdated BOLT quotes in HTLC/closing handling.
Mose of these are from the stricter `...` which won't cross section boundaries. The listoffers_done doesn't actually need the ellipsis at all.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> 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 only updates code comments that quote the BOLT (Basis of Lightning Technology) specification. No program logic, behavior, or security checks were changed. It is a documentation/comment cleanup with no security relevance.
Update outdated BOLT #11 quotes in invoice handling.
Textual updates: the tests are actually correct. The invoice.c change is to cross a section boundary.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
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
AI analysis · Informational 15/100
This commit only updates documentation-style comments and test fixture strings to match the current BOLT #11 specification. It changes how a specification quote is split across comment blocks and updates hard-coded Bech32 invoice strings in unit tests to reflect corrected examples. There is no code behavior change and no security relevance.
Lower-prioritydevtools: import check_quotes.py from lnprototest.by Rusty Russell · 63c433c2 · Apr 30, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Rusty Russell
devtools: import check_quotes.py from lnprototest.
The Python tool (copied from lnprototest) handles multiple comment styles.
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 adds a brand-new Python developer tool that checks whether comments in the source code accurately quote the BOLT (Bitcoin Lightning) protocol specification documents. It does not change any runtime code, network handling, cryptography, or wallet logic. There is no security issue visible in this commit.
Lower-prioritydevtools/check_quotes.py: add -k option, make `...` more nuanced.by Rusty Russell · 12c3e2ea · Apr 30, 2026 · 1 fileMessage 73 · AdequateInformational 15Details
Commit message · Rusty Russell
devtools/check_quotes.py: add -k option, make `...` more nuanced.
Splits BOLT files into per-section chunks so wildcards can't inadvertently cross section headers, supports `...`-at-start semantics, and adds make-style `-k`
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 updates an internal developer tool (check_quotes.py) that verifies whether comments in the source code accurately quote the BOLT specification. The changes add a keep-going option, improve wildcard matching, and handle single-line comment markers. There is no runtime Lightning node code changed, no user-facing behavior, and no security issue present in the commit itself.
Lower-prioritycheck-source-bolt: replace C check-bolt tool with Python check_quotes.py, check Rust and Python tooby Rusty Russell · 021a5777 · Apr 30, 2026 · 3 filesMessage 73 · AdequateInformational 15Details
Commit message · Rusty Russell
check-source-bolt: replace C check-bolt tool with Python check_quotes.py, check Rust and Python too
Extend check-source-bolt to also check Python and Rust source files.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> 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 replaces an internal developer tool used to check that source-code comments accurately quote the Lightning BOLT specifications. The old tool only handled C files; the new Python tool also checks Rust and Python files. It is a build/development tooling change with no runtime security impact.
Lower-prioritycommon/sphinx: don't create unused keys, fill in BOLT quotes.by Rusty Russell · c883870e · Apr 30, 2026 · 1 fileMessage 65 · AdequateInformational 13Details
Commit message · Rusty Russell
common/sphinx: don't create unused keys, fill in BOLT quotes.
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 13/100
This is a small code cleanup in the onion routing (sphinx) code. It removes an unused internal key container and adds explanatory quotes from the BOLT specification. There is no functional change to how packets are encrypted or verified, and no security bug is fixed.
Security candidatecommon: follow BOLT 4 requirements to make decryption constant time.by Rusty Russell · d5508e1e · Apr 30, 2026 · 1 fileMessage 73 · AdequateModerate 67Details
Commit message · Rusty Russell
common: follow BOLT 4 requirements to make decryption constant time.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Fixed: Protocol: use BOLT4's paranoid advice about doing constant-time error decryption.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
Why it was queued
constant-time or timing behavior
AI analysis · Moderate 67/100
This change fixes a privacy weakness in how Core Lightning processes returned error messages from the Lightning network routing protocol. Previously, the software stopped decrypting as soon as it found the error's origin, which could let a malicious routing node figure out its position in the payment path by measuring how quickly the sender reacted. The patch now always performs 27 decryption rounds and uses dummy keys after the real origin is found, following the BOLT 4 specification's 'paranoid' advice to make the process take the same amount of time regardless of where the failure occurred.
Lower-prioritylightningd: make sure we don't send channel_updates for unasked for channels.by Rusty Russell · a7abb0a2 · Apr 30, 2026 · 3 filesMessage 73 · AdequateLow 40Details
Commit message · Rusty Russell
lightningd: make sure we don't send channel_updates for unasked for channels.
We can decide to send an HTLC down a preferred channel which leads to the same peer as the one they asked for, but the spec is clear that you shouldn't send the "wrong" channel_update in that case.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Fixed: Protocol: when we send errors, we won't include a `channel_update` if we chose a different channel than the one they told us to.
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 40/100
This commit fixes a protocol compliance bug in Core Lightning. When a payment failed and the node sent back an error message, it could attach a 'channel_update' for a different channel than the one the sender had asked to use. The fix makes sure the attached update matches the requested channel, and omits it if not. This mainly prevents routing confusion and fingerprinting rather than direct theft of funds.
AI review queuedFix C comments which will accidentally trigger Python BOLT quote checker.by Rusty Russell · 69f1e720 · Apr 30, 2026 · 7 filesMessage 73 · AdequateInformational 15Details
Commit message · Rusty Russell
Fix C comments which will accidentally trigger Python BOLT quote checker.
We're going to get stricter, so "/* BOLT #N to-local output */" or "/* BOLT11 ... */" will upset it.
Also remove a stray bare blank line in a BOLT comment block.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> 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
parser or protocol pathsecond-pass: security-sensitive path
AI analysis · Informational 15/100
This commit only rewords C code comments to avoid confusing an internal Python tool that checks documentation quotes. No program behavior, network protocol handling, or security logic is changed. It is a code-comment cleanup with no security relevance.
check_quotes.py gains --coverage=FILE: on each successful match, atomically appends one line '{bolt} {section_idx} {start} {end}' to FILE using a single os.write() call so parallel make invocations don't interleave records.
find_quote() and find_quote_immediate() are updated to return match start positions (needed to record the covered range, not just the end).
bolt-coverage.py reads the coverage file and reports BOLT text not covered by any source comment. By default it restricts output to Requirements sections; --all-sections shows every section. --bolt N restricts to a single BOLT number.
Exit status is 0 if everything in the selected sections is covered, 1 if anything is uncovered.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
83/100 · StrongMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Mentions testing or verification
AI analysis · Informational 15/100
This commit adds two developer-only tools that track whether the project's source-code comments correctly quote the BOLT (Bitcoin Lightning specification) documents. It does not change any network, wallet, or consensus code, and it introduces no security-relevant behavior in the running node.
Lower-prioritygossipd: correclty ignore channel_announcement and channel_update for other chains.by Rusty Russell · cdab8f4e · Apr 30, 2026 · 1 fileMessage 73 · AdequateLow 37Details
Commit message · Rusty Russell
gossipd: correclty ignore channel_announcement and channel_update for other chains.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Fixed: Protocol: `gossipd` will now silently ignore gossip for other chains (rather than sending warnings).
73/100 · AdequateMessage clarity
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
AI analysis · Low 37/100
This change fixes Core Lightning's gossip daemon so that it silently ignores Lightning network gossip messages meant for other blockchains, instead of reacting to them (previously it may have sent warning messages or processed them inappropriately). This aligns the code with the protocol specification and reduces unnecessary or risky behavior when receiving cross-chain gossip.
Prints out a report of uncovered Requirements sections of the BOLTs.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
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 adds a new Makefile target that reports which sections of the Bitcoin Lightning specification (BOLTs) are not yet quoted or covered by the codebase. It does not change any running code, network behavior, or security logic, so it has no direct security impact.
Lower-prioritycommon: correctly refuse to accept wireaddr with port == 0.by Rusty Russell · 3d9bdab1 · Apr 30, 2026 · 7 filesMessage 81 · StrongModerate 51Details
Commit message · Rusty Russell
common: correctly refuse to accept wireaddr with port == 0.
BOLT 7 says this, but we don't do it. (Actually, it only says that for certain types, but I've fixed that in https://github.com/lightning/bolts/pull/1331).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
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 · Moderate 51/100
This change tightens how Core Lightning handles network addresses it receives from other nodes. Previously, the code would accept an address even if its port number was 0. The patch now treats port 0 as a signal to ignore the address, matching the Lightning protocol specification (BOLT 7). It also improves error reporting so callers can tell the difference between a malformed address, an unknown address type, and an address that should simply be skipped. The main risk is that a peer could announce a useless port-0 address and, before this fix, the node might have tried to use it in ways that caused confusion or minor failures.
Lower-prioritytests: update test_forward_different_fees_and_cltv to use default min_final_cltv_expiry_delta.by Rusty Russell · 6669d077 · Apr 30, 2026 · 1 fileMessage 91 · StrongInformational 15Details
Commit message · Rusty Russell
tests: update test_forward_different_fees_and_cltv to use default min_final_cltv_expiry_delta.
The BOLT #7 was updated to use the new default 18 as min_final_cltv_expiry_delta, so update our quote and test, and fix other textual spec changes.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
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
AI analysis · Informational 15/100
This commit only updates a single test file to match a recent change in the public Lightning Network specification (BOLT #7). The default minimum final CLTV expiry delta was changed from 9 to 18 blocks, so the test's expected numbers, comments, and quotes from the spec were adjusted accordingly. There is no change to production code, no bug fix, and no security issue.