RUSTSEC-2026-0219 Remote Denial of Service via malformed NIP-04 IV
A remote attacker can cause a denial of service in applications using the nostr crate by sending malformed NIP-04 initialization vectors that trigger a panic.
- 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-0219?
RUSTSEC-2026-0219 is a denial of service vulnerability in nostr, published on 26 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
The nostr crate did not validate the length of the initialization vector
decoded from the ?iv= portion of a NIP-04 encrypted message.
The decoded IV was converted from a byte slice to the 16-byte AES-CBC IV type
using a conversion that asserts the slice length. As a result, an IV whose
decoded length was not exactly 16 bytes caused a panic before ciphertext
decryption. For example, ?iv=AAAA decodes to a three-byte IV and triggers the
panic.
Applications that decrypt untrusted NIP-04 content are affected. The issue is also reachable through NIP-47 (Nostr Wallet Connect), where response and notification events from a malicious or compromised wallet service are passed to NIP-04 decryption. If the panic is not isolated, a crafted event can terminate the application or disrupt message processing, causing a denial of service.
The issue does not affect confidentiality or integrity.
The flaw was corrected by converting the decoded IV to [u8; 16] using a
checked conversion. Invalid IV lengths now return a Malformed error instead of
panicking.
Credit
Discovered and responsibly disclosed by Muhammed Shekho (mhd-shekho.com).
Which versions are affected by RUSTSEC-2026-0219?
1 open source package ship an affected version, including nostr.
| Package | Affected | Fixed in |
|---|---|---|
nostr crates.io | From 0.0.0-0 | 0.44.6, 0.45.0-alpha.6 |
How do I fix RUSTSEC-2026-0219?
Upgrade nostr to a fixed version for your release line: 0.44.6 or 0.45.0-alpha.6.
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-0219 being exploited?
There is no known exploitation of RUSTSEC-2026-0219 in the wild and no public exploit code.
Sources
Also known as GHSA-xg7c-246g-6qpv.