RUSTSEC-2026-0219High· 7.5▾ TwilightRemote Denial of Service via malformed NIP-04 IV
▾ Twilight zone — High severity, or a signal on a lesser flaw
impact 41.3 · likelihood 0 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via OSV
Last analysed / modified upstream
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.
Discovered and responsibly disclosed by Muhammed Shekho (mhd-shekho.com).
nostr >= 0.45.0-alpha.1, < 0.45.0-alpha.6Upgrade to a patched release:
nostr 0.45.0-alpha.6Connected by shared product, vendor, weakness, or advisory.
RUSTSEC-2026-0230High· 7.5Empty NIP-50 search filters can panic
RUSTSEC-2026-0229High· 7.5NIP-98 authorization parsing permits resource exhaustion
RUSTSEC-2026-0228Medium· 4.3NIP-04 parsing amplifies malformed ciphertext memory use
RUSTSEC-2026-0227High· 7.5NIP-44 v2 decryption permits resource exhaustion
RUSTSEC-2026-0226High· 7.5Wallet event parsers accept unauthenticated events
RUSTSEC-2026-0225Medium· 5.5Debug output exposes NIP-46 and NIP-60 credentials