Noise vulnerable to denial of service
High severity
GitHub Reviewed
Published
Dec 28, 2022
to the GitHub Advisory Database
•
Updated Feb 9, 2023
Description
Published by the National Vulnerability Database
Dec 27, 2022
Published to the GitHub Advisory Database
Dec 28, 2022
Reviewed
Dec 29, 2022
Last updated
Feb 9, 2023
Noise is a Go implementation of the Noise Protocol Framework. The Noise protocol implementation suffers from weakened cryptographic security after encrypting 2^64 messages, and a potential denial of service attack. After 2^64 (~18.4 quintillion) messages are encrypted with the Encrypt function, the nonce counter will wrap around, causing multiple messages to be encrypted with the same key and nonce. In a separate issue, the Decrypt function increments the nonce state even when it fails to decrypt a message. If an attacker can provide an invalid input to the Decrypt function, this will cause the nonce state to desynchronize between the peers, resulting in a failure to encrypt all subsequent messages.
References