{"id":"RUSTSEC-2026-0216","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\nwhen processing a short or empty ciphertext. After the HMAC check passes and the\nciphertext is decrypted via ChaCha20, the code reads a 2‑byte unpadded‑length\nprefix via `buffer[0..2]` without first verifying that the decrypted buffer\ncontains at least 2 bytes. A malicious sender who holds the symmetric\nconversation key (e.g., a direct‑message sender) can craft a payload that\nproduces a 0 or 1‑byte decrypted buffer, causing an index‑out‑of‑bounds panic.\nThis can be triggered remotely through any relay that delivers the crafted\nevent to the victim's client, resulting in a denial of service. No key material,\nplaintext, or memory corruption occurs.\n\nThe vulnerability is present in all versions from `0.26.0` up to `0.44.4`\n(inclusive) and in the alpha releases `0.45.0‑alpha.1` through `0.45.0‑alpha.4`.\nVersions `0.44.5` and `0.45.0‑alpha.5` contain the fix.\n\n## Credit\n\nDiscovered and responsibly disclosed by **Muhammed Shekho** ([mhd-shekho.com](https://mhd-shekho.com)).","aliases":["GHSA-hrqp-8w79-gwgw"],"modified":"2026-08-01T11:45:04.391536905Z","published":"2026-07-25T12:00:00Z","database_specific":{"license":"CC0-1.0"},"references":[{"type":"PACKAGE","url":"https://crates.io/crates/nostr"},{"type":"ADVISORY","url":"https://rustsec.org/advisories/RUSTSEC-2026-0216.html"},{"type":"WEB","url":"https://github.com/nostrdevkit/nostr/commit/73bdd677b872641d57a2ebcc5afc23ee0e5f0d2d"}],"affected":[{"package":{"name":"nostr","ecosystem":"crates.io","purl":"pkg:cargo/nostr"},"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":{"affects":{"arch":[],"os":[],"functions":["nostr::nips::nip44::decrypt","nostr::nips::nip44::decrypt_to_bytes","nostr::nips::nip44::v2::decrypt_to_bytes"]},"affected_functions":null},"database_specific":{"source":"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0216.json","categories":["denial-of-service"],"cvss":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","informational":null}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}