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

Assure BroadcasterInterface packages of len > 1 are child-with-parents

Public commit record

What the developer wrote

Authored by Leo Nash

73/100 · Adequate
Assure BroadcasterInterface packages of len > 1 are child-with-parents

Implementations MUST NOT assume any topological order on the
transactions.

While Bitcoin Core v29+ `submitpackage` RPC allows packages of length 1
to be submitted via `submitpackage`, it still requires any package
submitted there to be a `child-with-parents` package.

So we remove the possibility that a batch of transactions passed to
a `BroadcasterInterface` implementation contains unrelated transactions,
or multiple children.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context
The short version

What changed, and why it matters

This commit tightens the rules for how Lightning Dev Kit hands groups of Bitcoin transactions to external broadcasting code. Previously, a broadcaster might have received several unrelated transactions or multiple 'child' transactions in one batch, and the documentation only said they 'may or may not' depend on each other. The change guarantees that any batch with more than one transaction is exactly one child transaction plus the parent transactions it depends on. It also updates LDK's own test broadcaster to verify this shape and fixes a test so its fake anchor transaction actually spends the commitment transaction, matching the new guarantee. The main risk is that real broadcaster implementations which relied on the old, looser behavior could have submitted invalid packages to Bitcoin Core's submitpackage RPC, causing broadcasts to fail rather than enabling theft of funds directly.

Recommended action

Review any custom BroadcasterInterface implementation to ensure it does not assume transaction ordering and that it handles exactly one child-with-parents package when len > 1. If the implementation feeds batches directly to Bitcoin Core submitpackage, confirm it re-sorts topologically and rejects unrelated/multi-child packages, or upgrade to a LDK version that already enforces this contract.

Security signals we found

01

Contract tightening: broadcaster inputs must form a valid Bitcoin Core submitpackage child-with-parents package

02

New runtime assertion in test code validating package topology

03

Test fixture corrected so synthetic package satisfies the new contract

04

Documentation now explicitly forbids assuming topological order

Risk score

Why this scored 33/100

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