VDB
KO
HIGH 7.5

RUSTSEC-2026-0230

Empty NIP-50 search filters can panic

Details

The NIP-50 event-matching path searched event content with `slice::windows(search.len())`. An empty search string therefore called `slice::windows(0)`, which always panics instead of returning a match result.

A remote client able to submit filters to an application using this matcher could trigger the panic with an empty NIP-50 search value. This includes clients querying an SDK local relay. Depending on the application's panic configuration and task isolation, the crafted filter could terminate request processing, a runtime worker, or the entire process, causing denial of service. No confidentiality or integrity impact is known.

Empty searches are now handled before the substring search, so the matcher returns a defined result without constructing a zero-sized window or panicking.

Are you affected?

Enter the version of the package you're using.

Affected packages

crates.io / nostr
Introduced in: 0.0.0-0 Fixed in: 0.44.7

Upgrade nostr to 0.44.7 or newer (ecosystem crates.io).

References