RUSTSEC-2026-0216

Source
https://rustsec.org/advisories/RUSTSEC-2026-0216
Import Source
https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0216.json
JSON Data
https://api.osv.dev/v1/vulns/RUSTSEC-2026-0216
Published
2026-07-25T12:00:00Z
Modified
2026-07-29T15:30:03.565949994Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
Remote Denial of Service via malformed NIP‑44 v2 payload
Details

The NIP-44 v2 decryption path in the nostr crate contains a reachable panic when processing a short or empty ciphertext. After the HMAC check passes and the ciphertext is decrypted via ChaCha20, the code reads a 2‑byte unpadded‑length prefix via buffer[0..2] without first verifying that the decrypted buffer contains at least 2 bytes. A malicious sender who holds the symmetric conversation key (e.g., a direct‑message sender) can craft a payload that produces a 0 or 1‑byte decrypted buffer, causing an index‑out‑of‑bounds panic. This can be triggered remotely through any relay that delivers the crafted event to the victim's client, resulting in a denial of service. No key material, plaintext, or memory corruption occurs.

The vulnerability is present in all versions from 0.26.0 up to 0.44.4 (inclusive) and in the alpha releases 0.45.0‑alpha.1 through 0.45.0‑alpha.4. Versions 0.44.5 and 0.45.0‑alpha.5 contain the fix.

Credit

Discovered and responsibly disclosed by Muhammed Shekho (mhd-shekho.com).

Database specific
{
    "license": "CC0-1.0"
}
References

Affected packages

crates.io / nostr

Package

Affected ranges

Type
SEMVER
Events
Introduced
0.0.0-0
Fixed
0.44.5
Introduced
0.45.0-alpha.1
Fixed
0.45.0-alpha.5

Ecosystem specific

{
    "affected_functions": null,
    "affects": {
        "arch": [],
        "os": [],
        "functions": [
            "nostr::nips::nip44::decrypt",
            "nostr::nips::nip44::decrypt_to_bytes",
            "nostr::nips::nip44::v2::decrypt_to_bytes"
        ]
    }
}

Database specific

cvss
"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
source
"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0216.json"
categories
[
    "denial-of-service"
]
informational
null