Global Feed Post Login
Replying to Avatar smallworlnd

A post mortem on this exploit if you're curious. The attacker paid a hold invoice as expected, but force-closed the channel immediately on first confirmation of the funding transaction, which is very much not expected. That basically broke the signalling chain such that publsp expected an 'OPEN' status but it never got it since the default number of confirmations for the LN implementation to send the 'OPEN' is 3. So the preimage needed to settle the invoice was never released. That's the second problem. The preimage needs to be released in order to actually claim the attacker's payment, but persistence was in memory only, and after the dust settled on what happened, the preimage was effectively gone, thus dashing any hope of claiming the lost funds. The HTLC will have expired and the attacker will have walked away with the pushed funds.

nostr:nevent1qqsy2jxek8dh093v2lqn5un3g5dzvtctjcandm82z9ljd2ds7n9j3acpzemhxue69uhhwmm59ehx7um5wgh8qctjw3uj7q3qtkfex6fd5er9h83299pzxcn699lxdrd3ff3859vhqfm9twtz5leqxpqqqqqqztsksv6

Avatar
Justin (shocknet) 5mo ago 💬 1

iiuc, this wouldn't have been possible if the default open was 1 conf?

Reply to this note

Please Login to reply.

Discussion

Avatar
smallworlnd 5mo ago

In lnd I'm not sure the OpenChannel endpoint has control over that. Just 1 conf seems risky to me for other reasons, like a reorg happening after the channel has been used to spend.

Thread collapsed