lsp_plugin: remove reserve from hook response
What changed, and why it matters
This commit removes a line that forced a channel reserve to zero in a Lightning plugin's response. A zero reserve could let one side drain a payment channel without keeping the usual safety buffer, potentially making it easier to cheat or destabilize the channel. The change is small and self-described as a development mistake, but the security implications depend on how the plugin is used and whether other protections remain in place.
Review the LSPS plugin's channel-open flow to confirm that the reserve is now either left unset (so Core Lightning applies its default) or explicitly set to a safe value. Test that the resulting channel reserve matches protocol expectations and is not zero unless intentionally configured by the user.
Security signals we found
removal of a zero reserve override in a channel-open hook
commit message describes the override as an unintended development artifact
channel reserve is a standard Lightning security mechanism
patch is one-line and does not demonstrate complete reserve handling
Evidence from the diff
In plugins/lsps-plugin/src/client.rs, the on_openchannel hook response no longer includes "reserve": "0msat". The reserve is a per-channel amount that each peer must keep on its side to ensure it has something at stake when disputing old channel states. Setting it to zero removes that economic deterrent for the peer. The commit message says this ‘slipped in during development’ and that the plugin should not ‘mess with the channel reserve here’. The patch is partial: it only removes the explicit override; it does not show whether the underlying default reserve is applied correctly afterward.
Changed components
plugins/lsps-plugin/src/client.rsLSPS client plugin openchannel hookInspect captured patch +0 / −1
diff --git a/plugins/lsps-plugin/src/client.rs b/plugins/lsps-plugin/src/client.rs
index c72ccc64..98f39595 100644
--- a/plugins/lsps-plugin/src/client.rs
+++ b/plugins/lsps-plugin/src/client.rs
@@ -540,7 +540,6 @@ async fn on_openchannel(
// found in the ds record.
return Ok(serde_json::json!({
"result": "continue",
- "reserve": "0msat",
"mindepth": 0,
}));
} else {
Why this scored 35/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.