RUSTSEC-2026-0228 NIP-04 parsing amplifies malformed ciphertext memory use

Not scored Published

A malicious sender can cause memory exhaustion in Rust applications using this NIP-04 decryption library by sending malformed encrypted messages with excessive separators or oversized IVs.

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-0228?

RUSTSEC-2026-0228 is a denial of service vulnerability in nostr, 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 NIP-04 decryption parser split attacker-controlled content on every ?iv= separator and collected all resulting segments before checking that the message had the expected two parts. It also Base64-decoded the complete IV text before checking that it represented the required 16-byte AES-CBC IV.

A malicious sender could include a large number of separators or an oversized IV in an encrypted direct message. Applications that attempted to decrypt the message performed avoidable allocations proportional to the malformed input, with additional allocation amplification from the segment vector and Base64 output. This can consume memory and CPU in clients processing messages received through a relay. It does not weaken NIP-04 encryption or reveal plaintext or key material.

The parser now uses a single bounded split, rejects additional separators, and validates the 24-byte encoded IV length before Base64 decoding. Malformed inputs are returned as errors without allocating for every separator or decoding an arbitrarily large IV.

Which versions are affected by RUSTSEC-2026-0228?

1 open source package ship an affected version, including nostr.

PackageAffectedFixed in
nostr crates.ioFrom 0.0.0-00.44.7

How do I fix RUSTSEC-2026-0228?

Upgrade nostr to 0.44.7 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-0228 being exploited?

There is no known exploitation of RUSTSEC-2026-0228 in the wild and no public exploit code.

Sources

Is RUSTSEC-2026-0228 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free