common: assume OPT_PAYMENT_SECRET.
What changed, and why it matters
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.
Review whether treating payment_secret and option_channel_type as assumed could cause interoperability or privacy issues with older or non-compliant peers, particularly around keysend payments lacking payment secrets. No immediate security patch appears required based on the commit alone.
Security signals we found
Protocol feature negotiation change
Payment secret handling altered for keysend compatibility
No explicit security claim in commit or diff
Bumped BOLT specification reference
Evidence from the diff
The patch updates DEFAULT_BOLTVERSION to a newer BOLT RFCs commit and changes feature flags in common/features.h: payment_secret moves from IN9 (announced, required at feature bit 9) to ASSUMED, and option_channel_type moves from IN (announced) to ASSUMED. ‘Assumed’ features are treated as supported without being advertised in feature bits. The commit message explicitly states that payment_secret support can be assumed but its presence cannot, because keysend payments do not include a payment_secret. This is a feature negotiation/policy change rather than a code-level bug fix.
Changed components
common/features.hLightning feature bit negotiationPayment secret handlingChannel type negotiationInspect captured patch +3 / −3
diff --git a/Makefile b/Makefile
index f8e586e5..5a5f6fee 100644
--- a/Makefile
+++ b/Makefile
@@ -33,7 +33,7 @@ CCANDIR := ccan
# Where we keep the BOLT RFCs
BOLTDIR := ../bolts/
-DEFAULT_BOLTVERSION := bdf790bfdc10c2e894be3546efdc80a60d93da8c
+DEFAULT_BOLTVERSION := d98366c900e20eb5475be8dee0c58878dca1f967
# Can be overridden on cmdline.
BOLTVERSION := $(DEFAULT_BOLTVERSION)
diff --git a/common/features.h b/common/features.h
index 5866b105..28615736 100644
--- a/common/features.h
+++ b/common/features.h
@@ -109,7 +109,7 @@ struct feature_set *feature_set_dup(const tal_t *ctx,
* | 8/9 | `var_onion_optin` |... ASSUMED ...
* | 10/11 | `gossip_queries_ex` |... IN ...
* | 12/13 | `option_static_remotekey` |... ASSUMED ...
- * | 14/15 | `payment_secret` |... IN9 ...
+ * | 14/15 | `payment_secret` |... ASSUMED ...
* | 16/17 | `basic_mpp` |... IN9 ...
* | 18/19 | `option_support_large_channel` |... IN ...
* | 22/23 | `option_anchors` |... INT ...
@@ -119,7 +119,7 @@ struct feature_set *feature_set_dup(const tal_t *ctx,
* | 34/35 | `option_quiesce` |... IN ...
* | 38/39 | `option_onion_messages` |... IN ...
* | 42/43 | `option_provide_storage` |... IN ...
- * | 44/45 | `option_channel_type` |... IN ...
+ * | 44/45 | `option_channel_type` |... ASSUMED ...
* | 46/47 | `option_scid_alias` | ... INT ...
* | 48/49 | `option_payment_metadata` |... 9 ...
* | 50/51 | `option_zeroconf` | ... INT ...
Why this scored 26/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.