LDK v0.2.6 patches splice and payment-handling security flaws
In brief
- LDK v0.2.6 fixes splice fund theft and payment-state loading failures
- Malicious peers could redirect excess splice fees to their outputs
- Payment-hash collision prevents ChannelManager state loading on restart
- No observed losses or exploited applications reported
Splice Fee Vulnerability
The first flaw involves LDK's splice mechanism. A splice transaction has costs shared between participants, with the initiating node paying fees for specified common parts along with its own contributed inputs and outputs. The splice flaw could let a malicious peer cause excess fee allocation, with the excess going to that peer's output. The vulnerability put a small amount of funds at risk when a node initiates a splice, though no numerical ceiling was specified in the release notice.
Payment State and Node Restart
The second flaw is more disruptive to operations. A separate security issue involved two payment contracts sharing the same payment hash, which could prevent ChannelManager state from loading after a bogus payment was rejected.
ChannelManager is LDK's component for managing channels and payments. Restarting an existing node involves reading its saved state back into memory through deserialization. If that saved state is rejected during loading, the application cannot complete its normal restart.
Architecture and Scope
LDK's core implementation is compiled into applications, with developers choosing surrounding storage, wallet, networking and blockchain-monitoring components. This modular design means the impact of LDK vulnerabilities depends on how each application integrates the toolkit.
The release notice reported no observed losses or exploited applications from these vulnerabilities. Developers using LDK should update to v0.2.6 to patch both issues.


