What changed, and why it matters
This commit updates the release notes for LND 0.21.2 to describe a fix for a bug in the HTLC interceptor RPC. The bug caused LND to fail to forward payments in blinded routes when the next hop was identified by node ID instead of channel ID. The release notes also warn RPC clients that a special sentinel value now appears in the outgoing_requested_chan_id field for these cases, so client code must be updated to avoid misclassifying forwards. The commit itself only changes documentation, not code.
Review PR #10942 and the actual code changes it introduced to assess whether the forwarding failure or the RPC sentinel change has security implications. Update any custom RPC clients that consume ForwardHtlcInterceptRequest to handle the new sentinel value and outgoing_requested_node_id field.
Security signals we found
Blinded route forwarding failure could disrupt payment routing or be used to probe path structure.
Sentinel value change in RPC API could cause client misclassification of forwards if not handled.
Release notes describe the change as a fix for a forwarding issue, not as a security vulnerability.
Evidence from the diff
The diff adds three release-note entries for PR #10942. The first documents a new next_node_id field exposed by the HTLC interceptor for blinded routes. The second documents that ForwardHtlcInterceptRequest.outgoing_requested_chan_id now uses the sentinel value 0xFFFFFFFFFFFFFFFF when the next hop is identified by node ID, and that clients must handle this sentinel and read outgoing_requested_node_id instead. The third documents a bug fix where an LND relay node in a blinded path failed to forward payments when the next hop was specified by node ID, now resolved to a channel via non-strict forwarding. The actual code changes are not present in this commit.
Changed components
docs/release-notes/release-notes-0.21.2.mdHTLC interceptor RPCblinded route forwardingInspect captured patch +20 / −0
diff --git a/docs/release-notes/release-notes-0.21.2.md b/docs/release-notes/release-notes-0.21.2.md
index d4bee4f..cc96ab6 100644
--- a/docs/release-notes/release-notes-0.21.2.md
+++ b/docs/release-notes/release-notes-0.21.2.md
@@ -49,6 +49,10 @@
## RPC Additions
+* The [HTLC interceptor](https://github.com/lightningnetwork/lnd/pull/10942) now
+ exposes the next hop of a blinded route that identifies it by node ID
+ (`next_node_id`) rather than by channel.
+
## lncli Additions
# Improvements
@@ -57,6 +61,15 @@
## RPC Updates
+* `ForwardHtlcInterceptRequest.outgoing_requested_chan_id` now holds a reserved
+ sentinel value (`18446744073709551615`, all bits set) when the
+ [HTLC interceptor](https://github.com/lightningnetwork/lnd/pull/10942) reports
+ a blinded forward that identifies the next hop by node ID. The sender of such
+ a forward requests no channel, so a zero value here would make a client that
+ detects the exit hop by a zero channel ID classify the forward as a final
+ receive. Clients that switch on this field must handle the sentinel and read
+ `outgoing_requested_node_id` for the next hop.
+
## lncli Updates
## Breaking Changes
@@ -73,6 +86,13 @@
## BOLT Spec Updates
+* [Fixed an issue](https://github.com/lightningnetwork/lnd/pull/10942) where an
+ lnd node acting as a relaying node (including the introduction node) in a
+ blinded path failed to forward the payment when the next hop was identified by
+ node ID (`next_node_id`) rather than a short channel ID. The next hop's public
+ key is now resolved to one of our channels with that peer using non-strict
+ forwarding.
+
## Testing
## Database
Why this scored 33/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.