GHSA-xg7c-246g-6qpv
Remote Denial of Service via malformed NIP-04 IV
GHSA-xg7c-246g-6qpv is a high vulnerability (CVSS 7.5) in nostr, published July 26, 2026. No source lists public exploit code. Fixed in nostr 0.44.6.
- Severity
- 7.5 HighCVSS 3.1, OSV
- Exploit chance
- UnscoredNo EPSS score yet
- Exploitation
- None knownNot on CISA’s or ENISA’s lists
- Fixed in
0.44.6nostr
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).
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Affected packages
| Package | Affected | Fixed |
|---|---|---|
nostrcrates.io | 0.0.0-0 up to 0.44.6, 0.45.0-alpha.1 up to 0.45.0-alpha.6 | 0.44.60.45.0-alpha.6 |
What each source reports
OSV Score usedRUSTSEC-2026-0219 7.5
Remote Denial of Service via malformed NIP-04 IV
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).
- Record
RUSTSEC-2026-0219- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.