Every CVESearch/Get API key

GHSA-f96q-5f6p-v7cj

Verification cache poisoning allows forged Nostr events to bypass signature validation

7.5 HighFix available

GHSA-f96q-5f6p-v7cj is a high vulnerability (CVSS 7.5) in nostr-relay-pool, published August 1, 2026. No source lists public exploit code. Fixed in nostr-relay-pool 0.44.2.

What does this mean?
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.2nostr-relay-pool

Description

The nostr-relay-pool crate cached the result of event signature verification before the check was actually performed. Because the entry was inserted unconditionally, a first delivery whose signature failed was still recorded in the cache. A subsequent delivery of the same event (identical ID, but with a forged signature) would then hit the cache, causing signature verification to be skipped entirely. The forged event was passed on to NostrDatabase::save_event() as if it had been validated.

Applications that connect to untrusted or compromised Nostr relays and persist received events are vulnerable. An attacker can inject arbitrary events without a valid signature into the application's trusted database, enabling impersonation of any public key or corruption of application state derived from stored events.

The issue does not compromise confidentiality or availability. It solely undermines the integrity of stored event data.

The fix, released in version 0.44.2, moves the cache insertion to occur only after a successful signature verification, so that failed attempts never create a cache entry.

Credit

Discovered and reported by Ali Al-Sorehi

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
High
Availability
None

Affected packages

Affected packages
PackageAffectedFixed
nostr-relay-pool
crates.io
0.0.0-0 up to 0.44.2
0.44.2

What each source reports

OSV Score usedRUSTSEC-2026-02247.5

Verification cache poisoning allows forged Nostr events to bypass signature validation

The nostr-relay-pool crate cached the result of event signature verification before the check was actually performed. Because the entry was inserted unconditionally, a first delivery whose signature failed was still recorded in the cache. A subsequent delivery of the same event (identical ID, but with a forged signature) would then hit the cache, causing signature verification to be skipped entirely. The forged event was passed on to NostrDatabase::save_event() as if it had been validated.

Applications that connect to untrusted or compromised Nostr relays and persist received events are vulnerable. An attacker can inject arbitrary events without a valid signature into the application's trusted database, enabling impersonation of any public key or corruption of application state derived from stored events.

The issue does not compromise confidentiality or availability. It solely undermines the integrity of stored event data.

The fix, released in version 0.44.2, moves the cache insertion to occur only after a successful signature verification, so that failed attempts never create a cache entry.

Credit

Discovered and reported by Ali Al-Sorehi

Record
RUSTSEC-2026-0224
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02

History

History
RecordedChangedSources
first indexedOSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

References

MoveEnter Open