It has been almost ten months since my last post here. Since December, most of my time has gone into smite, a fuzzer for Lightning Network implementations. This post is a short summary of what smite is, what it has found so far, and where my future security write-ups will be published.
What is smite?
smite is a coverage-guided snapshot fuzzer for LND, Core Lightning, LDK and Eclair. It attacks each implementation the way a malicious peer would: over the network, through the peer protocol.
smite is derived from fuzzamoto, which does the same for Bitcoin full nodes. It runs the target node inside a Nyx VM and plays the role of the node’s peer. Once the target reaches an interesting state, smite snapshots the whole VM and restores that snapshot for every test case, so fuzzing time goes into the messages being tested rather than into starting nodes and replaying handshakes.
smite generates inputs in two main ways:
- Raw bytes. The simplest scenario completes a BOLT 8 handshake and sends the fuzzer’s bytes as a single Lightning message. This is effective at shaking out message parsing bugs.
- Structured programs. The IR scenario generates and mutates small programs in a typed intermediate representation, which are interpreted against the running node. The programs can use values the target sends back (keys, signatures, channel IDs, etc.), so smite can open channels with the target and reach protocol states that random bytes never will.
Beyond the usual crashes, hangs, and sanitizer errors expected from fuzzing, smite checks the target’s behavior against the BOLTs, flagging a node that differs from the specification.
What smite has found
As of today, smite has directly found 32 bugs across the four implementations. Most are spec violations, like a node accepting a channel parameter the BOLTs say it must reject, but the list also includes crashes, undefined behavior, use of uninitialized memory, a deadlock, and a denial-of-service vulnerability. The full list, with links to upstream issues and fixes, is on smite’s project page.
Two security advisories for Eclair are being published today. Both vulnerabilities are fixed in Eclair v0.14.0, and Eclair users should upgrade if they have not already.
LNF-2026-0001: Feature bit parsing DoS
Eclair v0.13.1 and earlier parsed feature vectors one bit at a time, allocating several heap objects for every bit.
A single maximum-length init message caused about 300 MB of heap churn and occupied a parsing thread for up to 300 ms.
By flooding the victim with such messages, an attacker could disconnect all the victim’s peers within a minute and run it out of memory within five.
smite found this vulnerability with its most primitive scenario, which sends raw bytes as a single message and then checks that the target still answers a ping promptly.
One input, which happened to be an init with a large feature vector, made Eclair take too long to respond.
LNF-2026-0002: zlib decompression DoS
Eclair v0.13.1 and earlier still accepted zlib-encoded channel queries, four years after BOLT 7 retired the encoding.
Decompression had no output limit, so a 64 KB query_short_channel_ids message inflated to 64 MB and decoded into about 17 million heap objects.
A flood of these messages took the victim offline within seconds and ran it out of memory within minutes.
smite did not find this one directly. After LNF-2026-0001, I ran LLM-assisted variant analysis over the Eclair codebase, looking for other places where a peer could impose far more work on the node than it spends itself. The analysis flagged the zlib codec, and experiments confirmed the DoS.
Moving to lnfuzz.org
smite is no longer a solo project. Nishant Bansal, Erick Cestari, and a growing group of contributors have joined, and many of the bugs on lnfuzz.org were found by them. The project now lives under the lnfuzz GitHub organization, with a website at lnfuzz.org that hosts our bug list, advisories, and posts about our fuzzing tools and techniques.
From now on, bugs and advisories related to smite will be published on lnfuzz.org. That includes both the bugs smite finds directly and the ones it leads to indirectly, like the zlib vulnerability above.
For the foreseeable future, I expect most of my security writing to appear on lnfuzz.org rather than on this blog. If you follow this blog for Lightning security posts, subscribe to the lnfuzz.org feed to keep up with new findings.




