Skip to content
Fencer Intel
high 7.5

RUSTSEC-2026-0230 json

Empty NIP-50 search filters can panic

published 3mo ago modified 3mo ago

cvss
7.5
version 3.1, OSV
cisa kev
Not listed
not in CISA's catalog
epss
—
no score, EPSS covers CVEs only
public exploits
0
none known

Summary

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.

Patch / fix

  • crates.io nostr 0.44.7

Is RUSTSEC-2026-0230 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.

Check with Fencer

CVSS scores

assigned by version score vector
OSV 3.1 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Affected packages

ecosystem package affected fixed in
crates.io nostr
>=0.0.0-0, <0.44.7
0.44.7

References

Sources

Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.