Repository navigation
Lost ~45M sats to a power outage during active routing β is recovery truly impossible? Any help deeply appreciated π #10908
Summary ( β LND v0.18.5-beta)LND on an Ubuntu VM (UTM) on a Mac mini, ~4 BTC routing node, no UPS at the time. A power outage caused a hard shutdown while a significant amount was in-flight as HTLCs. I believe I lost ~45M sats and would be grateful for a sanity check on whether any recovery is What happened
The lossUsing dated balance snapshots, I localized a ~45M sat shortfall to the 5/27β5/31 window, which matches the ~47M that was unsettled at the moment of the outage. What I checked
My current readForwards where the outgoing leg settled but the incoming leg failed/expired during the downtime β off-chain loss, not recoverable. I hope I'm wrong. Questions
This is a very significant amount for me, and honestly I've barely slept since I found out. I've spent months building and running this node. If anyone has experience recovering from this kind of outage / data-loss situation β or knows someone who does β I would be |
Replies: 4 comments 3 replies
|
It would be better if you could share your logs for analysis, as we need to understand what happened in the two states between 10022 and 10024. In addition, which db are you using? Maybe share your configs too, via DMs or email |
|
I've created this PR: lightninglabs/chantools#241 |
|
Hi Yong,
Thanks again for your help back in June with the power-outage incident.
Unfortunately I'm dealing with a much more serious situation now β my node
was compromised and an attacker used the RPC interface to force-close 4
channels and sweep the wallet, stealing ~1.4 BTC (140,416,882 sats).
Quick summary:
- Attacker gained access (entry vector not fully confirmed β likely SSH
into a host machine adjacent to the node)
- Used CloseChannel RPC with a custom --delivery_addr to redirect settled
balances to a single address
- Channels with active/pending HTLCs were protected (close request failed
with "cannot co-op close channel with active htlcs") β only HTLC-free
channels were drained
- Logs (auth.log, wtmp, bash_history) were wiped on both the node VM and
the host machine shortly after
- Funds are still sitting unmoved at the destination address as of now
Destination address: bc1qchn3jv87gaalgp2yvnqtcf2p3mx5632atdmmyw
https://mempool.space/address/bc1qchn3jv87gaalgp2yvnqtcf2p3mx5632atdmmyw
Full timeline with tx IDs, block heights, and log excerpts here: [리ν¬νΈ λ§ν¬]
Honestly, I still don't know exactly how they got in. I've traced the
LND-side behavior pretty thoroughly (RPC calls, the HTLC-blocking pattern,
the delivery_addr targeting), but the actual initial access point is still
unclear even after going through SSH logs, auth logs, and shell history on
both machines β a lot of it had already been wiped or aged out by the time
I looked. If this matches any attack pattern you've seen before β macaroon
leaks, exposed RPC ports, known LND exploits, whatever β I'd really
appreciate hearing about it. Even a "this looks like X" would help me know
what to check next.
I've already filed a police report. Wondering if you'd be wie lnd.log β
specifically curious whether there's anything atthe LND/protocol level that
could help identify the RPC client, or any other channel-state forensics I
might be missing (I'm not deeply familiar
with the internals). No pressure if you're busy, just really
β¦On Fri, Jun 19, 2026 at 1:13β―AM Yong ***@***.***> wrote:
I've created this PR: lightninglabs/chantools#241
<lightninglabs/chantools#241>
You can try to sweep it via chantools sweephtlc.
β
Reply to this email directly, view it on GitHub
<#10908?email_source=notifications&email_token=CGIMFBS3Z4EWGKE7RYAM7LT5AQII5A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCNZTGU2DENBZUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-17354249>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/CGIMFBSD2UYGSWXFW26Q67L5AQII5AVCNFSNUABHKJSXA33TNF2G64TZHM2DSNZWGU2DQMB3IRUXGY3VONZWS33OHMYTAMRXHAYDGNVBOYBA>
.
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS
<https://github.com/notifications/mobile/ios/CGIMFBWNZKVQITU6EZYUEGL5AQII5A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCNZTGU2DENBZUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVJTG633UMVZF62LPOM>
and Android
<https://github.com/notifications/mobile/android/CGIMFBTOCWMVTPLGY4QRHNT5AQII5A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCNZTGU2DENBZUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE>.
Download it today!
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
|
Hi Yong,
You already have the details from earlier β thank you, as always, for
helping out in urgent situations like this. Attached is an AI-generated
summary of the incident, which I hope will be useful for your analysis.
Thanks again,
Terry
β¦On Sun, Aug 9, 2026 at 1:49β―PM Yong ***@***.***> wrote:
Truly sorry about your loss. Let's move this conversation to a private
channel for further investigation.
β
Reply to this email directly, view it on GitHub
<#10908?email_source=notifications&email_token=CGIMFBSKGCYUAODMOIZDPHD5I77G5A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCNZZGQ4TGOJUUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVRTG633UMVZF6Y3MNFRWW#discussioncomment-17949394>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/CGIMFBQ6M6Y367HNPD5RHLL5I77G5AVCNFSNUABHKJSXA33TNF2G64TZHM2DSNZWGU2DQMB3IRUXGY3VONZWS33OHMYTAMRXHAYDGNVBOYBA>
.
Triage notifications, keep track of coding agent tasks and review pull
requests on the go with GitHub Mobile for iOS
<https://github.com/notifications/mobile/ios/CGIMFBSU7YLRXUKHM5VBGLD5I77G5A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCNZZGQ4TGOJUUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVJTG633UMVZF62LPOM>
and Android
<https://github.com/notifications/mobile/android/CGIMFBULGGAS5CPC7ADJVM35I77G5A5CNFSNUABIM5UWIORPF5TWS5BNNB2WEL2ENFZWG5LTONUW63SDN5WW2ZLOOQXTCNZZGQ4TGOJUUZZGKYLTN5XKMYLVORUG64VFMV3GK3TUVZTG633UMVZF6YLOMRZG62LE>.
Download it today!
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
I've created this PR: lightninglabs/chantools#241
You can try to sweep it via
chantools sweephtlc.