From 4c143f078d9f841d39b2075af005082d5688982e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kyle=20=F0=9F=90=86?= Date: Thu, 16 Jul 2026 11:03:58 -0400 Subject: [PATCH] keep-nip46: fail closed instead of panicking on unrouted encryption method --- keep-nip46/src/server.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/keep-nip46/src/server.rs b/keep-nip46/src/server.rs index 17d1a131..f3959bfe 100644 --- a/keep-nip46/src/server.rs +++ b/keep-nip46/src/server.rs @@ -804,7 +804,14 @@ pub(crate) async fn dispatch_request( .handle_nip04_decrypt(app_pubkey, peer, &request.params[1]) .await } - _ => unreachable!(), + // The outer dispatch arm routes exactly the four methods above + // here, so this is unreachable today; fail closed instead of + // panicking so a future divergence between the two lists cannot + // let an attacker-supplied method string crash the signer. + other => { + warn!(method = %other, "encryption dispatch received unrouted method"); + return Nip46Response::error(id, "Unsupported method"); + } }; match result { Ok(data) => Nip46Response::ok(id, &data),