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.
https://github.com/cloudflare/circl/security/advisories/GHSA-2q89-485c-9j2x
Published: 2023-05-10
Updated: 2026-06-17
Named Vulnerability: GO-2023-1765Named Vulnerability: GHSA-2q89-485c-9j2x
Base Score: 8.5
Vector: CVSS2#AV:N/AC:L/Au:N/C:P/I:C/A:N
Severity: High
Base Score: 8.2
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
Severity: High
EPSS: 0.00386