{"id":"RUSTSEC-2026-0230","summary":"Empty NIP-50 search filters can panic","details":"The NIP-50 event-matching path searched event content with\n`slice::windows(search.len())`. An empty search string therefore called\n`slice::windows(0)`, which always panics instead of returning a match result.\n\nA remote client able to submit filters to an application using this matcher could\ntrigger the panic with an empty NIP-50 search value. This includes clients querying an\nSDK local relay. Depending on the application's panic configuration and task\nisolation, the crafted filter could terminate request processing, a runtime worker, or\nthe entire process, causing denial of service. No confidentiality or integrity impact\nis known.\n\nEmpty searches are now handled before the substring search, so the matcher returns a\ndefined result without constructing a zero-sized window or panicking.","modified":"2026-08-02T18:00:03.543191499Z","published":"2026-08-01T12:00:00Z","database_specific":{"license":"CC0-1.0"},"references":[{"type":"PACKAGE","url":"https://crates.io/crates/nostr"},{"type":"ADVISORY","url":"https://rustsec.org/advisories/RUSTSEC-2026-0230.html"},{"type":"WEB","url":"https://github.com/nostrdevkit/nostr/commit/29182657bc54ac18564597e4414f08c3e4e9aa0a"}],"affected":[{"package":{"name":"nostr","ecosystem":"crates.io","purl":"pkg:cargo/nostr"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"0.44.7"}]}],"ecosystem_specific":{"affected_functions":null,"affects":{"arch":[],"os":[],"functions":[]}},"database_specific":{"categories":["denial-of-service"],"cvss":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","informational":null,"source":"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0230.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}