AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Low 42 Bitcoin

Fail interactive-tx negotiation on abort

Public commit record

What the developer wrote

Authored by Wilmer Paulino

68/100 · Adequate
Fail interactive-tx negotiation on abort

This commit reworks all interactive transaction construction methods to
mark the negotiation as failed upon a local/remote `TxAbort`, ensuring
the `InteractiveTxConstructor` is consumed. Along the way, we refactor
the handling of `tx_complete` such that we only have a single call into
the `Channel` from the `ChannelManager`.
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This commit is a defensive refactor of how Lightning transaction negotiations are aborted. It makes sure that when either side cancels an interactive funding/splicing negotiation, the internal constructor object is consumed (taken away) so it cannot be reused. It also centralizes the handling of the final 'tx_complete' message so the channel manager calls the channel object only once. The change appears to close a state-handling gap where a failed negotiation might leave stale state behind, but the commit itself does not describe a specific vulnerability or assign a CVE.

Recommended action

Treat as a hardening/state-correctness improvement rather than an urgent security fix. Reviewers should verify that fail_interactive_tx_negotiation is invoked on every error path that can leave the constructor in a bad state, and that the new tx_complete flow does not skip required signature validation or commitment advancement checks. Monitor project release notes for any later security classification.

Security signals we found

01

State cleanup on abort: interactive constructor is taken/consumed, preventing reuse after failure

02

Centralized tx_complete handling reduces duplicated state transitions between ChannelManager and Channel

03

Removal of public as_unfunded_v2_mut and narrowing of interactive_tx_constructor_mut/funding_tx_constructed visibility

04

Error propagation changed from raw TxAbort messages to typed AbortReason, with conversion to TxAbort happening in one place

05

Channel no longer force-closes on funding_tx_constructed failure for unfunded channels; instead sends TxAbort

06

No CVE, advisory, or researcher attribution present in commit or supplied references

Risk score

Why this scored 42/100

Our methodology →
Potential impact 12/30
Exploitability 8/25
Stealth signal 6/15
Affected reach 7/15
Confidence 6/10
Evidence quality 3/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.