Headline
GHSA-2q89-485c-9j2x: Improper random reading in CIRCL
Impact
When sampling randomness for a shared secret, the implementation of Kyber and FrodoKEM, did not check whether crypto/rand.Read()
returns an error. In rare deployment cases (error thrown by the Read()
function), this could lead to a predictable shared secret.
The tkn20 and blindrsa components did not check whether enough randomness was returned from the user provided randomness source. Typically the user provides crypto/rand.Reader
, which in the vast majority of cases will always return the right number random bytes. In the cases where it does not, or the user provides a source that does not, the blinding for blindrsa is weak and integrity of the plaintext is not ensured in tkn20.
Patches
The fix was introduced in CIRCL v. 1.3.3
- GitHub Advisory Database
- GitHub Reviewed
- CVE-2023-1732
Improper random reading in CIRCL
Moderate severity GitHub Reviewed Published May 10, 2023 in cloudflare/circl • Updated May 11, 2023
Package
gomod github.com/cloudflare/circl (Go)
Affected versions
< 1.3.3
Impact
When sampling randomness for a shared secret, the implementation of Kyber and FrodoKEM, did not check whether crypto/rand.Read() returns an error. In rare deployment cases (error thrown by the Read() function), this could lead to a predictable shared secret.
The tkn20 and blindrsa components did not check whether enough randomness was returned from the user provided randomness source. Typically the user provides crypto/rand.Reader, which in the vast majority of cases will always return the right number random bytes. In the cases where it does not, or the user provides a source that does not, the blinding for blindrsa is weak and integrity of the plaintext is not ensured in tkn20.
Patches
The fix was introduced in CIRCL v. 1.3.3
References
- GHSA-2q89-485c-9j2x
- https://nvd.nist.gov/vuln/detail/CVE-2023-1732
- cloudflare/circl@ff8d912
- https://github.com/cloudflare/circl/releases/tag/v1.3.3
Published to the GitHub Advisory Database
May 11, 2023
Last updated
May 11, 2023
Related news
When sampling randomness for a shared secret, the implementation of Kyber and FrodoKEM, did not check whether crypto/rand.Read() returns an error. In rare deployment cases (error thrown by the Read() function), this could lead to a predictable shared secret. The tkn20 and blindrsa components did not check whether enough randomness was returned from the user provided randomness source. Typically the user provides crypto/rand.Reader, which in the vast majority of cases will always return the right number random bytes. In the cases where it does not, or the user provides a source that does not, the blinding for blindrsa is weak and integrity of the plaintext is not ensured in tkn20.