GO-2022-0425

Source
https://pkg.go.dev/vuln/GO-2022-0425
Import Source
https://vuln.go.dev/ID/GO-2022-0425.json
JSON Data
https://api.test.osv.dev/v1/vulns/GO-2022-0425
Aliases
Published
2022-02-15T01:57:18Z
Modified
2024-05-20T16:03:47Z
Summary
Weak encryption and denial of service in github.com/flynn/noise
Details

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.

Database specific
{
    "review_status": "REVIEWED",
    "url": "https://pkg.go.dev/vuln/GO-2022-0425"
}
References

Affected packages

Go / github.com/flynn/noise

Package

Name
github.com/flynn/noise
View open source insights on deps.dev
Purl
pkg:golang/github.com/flynn/noise

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
1.0.0

Ecosystem specific

{
    "imports": [
        {
            "path": "github.com/flynn/noise",
            "symbols": [
                "CipherState.Decrypt",
                "CipherState.Encrypt",
                "HandshakeState.ReadMessage",
                "HandshakeState.WriteMessage",
                "symmetricState.DecryptAndHash",
                "symmetricState.EncryptAndHash"
            ]
        }
    ]
}