RUSTSEC-2026-0231 Relay authentication challenges can exhaust memory
A malicious relay can exhaust client memory by flooding authentication challenges, causing denial of service in the Rust Nostr SDK.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is RUSTSEC-2026-0231?
RUSTSEC-2026-0231 is a denial of service vulnerability in nostr-relay-pool, published on 1 Aug 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
The SDK forwarded every NIP-42 AUTH challenge received from a relay through an
unbounded command queue. Challenge handling can wait for an asynchronous signer or
user interaction, so receiving challenges was substantially faster than completing
the corresponding authentication work.
A malicious relay could continuously send new challenges without authenticating or delivering valid events. Every value remained queued, causing memory use and pending signer operations to grow without a fixed limit until the client became unavailable. The issue does not allow the relay to forge a signature or learn the client's private key.
The SDK now coalesces pending challenges through a latest-value channel. NIP-42 makes an earlier challenge invalid when the relay sends a new one, so replacing pending work preserves the only challenge that can still be answered while keeping memory use bounded.
Which versions are affected by RUSTSEC-2026-0231?
1 open source package ship an affected version, including nostr-relay-pool.
| Package | Affected | Fixed in |
|---|---|---|
nostr-relay-pool crates.io | From 0.0.0-0 | 0.44.3 |
How do I fix RUSTSEC-2026-0231?
Upgrade nostr-relay-pool to 0.44.3 or later.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is RUSTSEC-2026-0231 being exploited?
There is no known exploitation of RUSTSEC-2026-0231 in the wild and no public exploit code.