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

Drop stale splice signature on disconnect

Public commit record

What the developer wrote

Authored by Wilmer Paulino

73/100 · Adequate
Drop stale splice signature on disconnect

An initial splice `commitment_signed` can be buffered while waiting for
the user to provide funding signatures. While this was dropped after a
node restart as it's only intended to be live & in-memory state, it was
not dropped after a disconnection. This could lead to a duplicate
message being received after the negotiation has already completed,
leading to a force close.

This was discovered by the `chanmon_consistency` fuzzer via:

06a4721e111911191119401119407019bd411a1f0d91401119111911194070bec111b70e5df11611ffffffffffffffff411f0aa97210b6ff21b6ff5ba2ffad10
✓ Descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Names security-relevant behavior explicitly
The short version

What changed, and why it matters

This fix prevents a Lightning channel from being accidentally force-closed. During a splice (a way to resize a payment channel), one side's initial signature could be kept in memory after the peers disconnected. If the peers later reconnected and finished the splice, that old buffered signature could be processed again, triggering a safety shutdown (force close) of the channel. The patch now clears that buffered signature when the connection drops, just like it was already cleared on restart.

Recommended action

Apply the patch. Review other buffered in-memory protocol messages for similar disconnect-vs-restart cleanup gaps. Consider fuzzing the splice reconnect path further.

Security signals we found

01

State inconsistency: in-memory buffered message not cleared on disconnect

02

Duplicate message processing after reconnection

03

Force-close consequence for active Lightning channel

04

Fuzzer-discovered issue (chanmon_consistency fuzzer)

05

Splicing protocol edge case

Risk score

Why this scored 58/100

Our methodology →
Potential impact 18/30
Exploitability 10/25
Stealth signal 8/15
Affected reach 10/15
Confidence 8/10
Evidence quality 4/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.