Skip to content

Noise vulnerable to denial of service

High severity GitHub Reviewed Published Dec 28, 2022 to the GitHub Advisory Database • Updated Feb 9, 2023

Package

gomod github.com/flynn/noise (Go)

Affected versions

< 1.0.0

Patched versions

1.0.0

Description

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

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

Severity

High
7.7
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
High
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
High
Availability
High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:H

Weaknesses

CVE ID

CVE-2021-4239

GHSA ID

GHSA-6cr6-fmvc-vw2p

Source code

Checking history
See something to contribute? Suggest improvements for this vulnerability.