---
id: CVE-2023-1732
aliases:
  - GHSA-2q89-485c-9j2x
  - GO-2023-1765
title: Improper random reading in CIRCL
summary: Improper random reading in CIRCL
severity: medium
cvss: 5.3
cvssVector: 'CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:L/I:H/A:N'
vendor: cloudflare
product: github.com/cloudflare/circl
ecosystem: go
affected:
  - github.com/cloudflare/circl < 1.3.3
patched:
  - github.com/cloudflare/circl 1.3.3
published: '2023-05-11'
updated: '2026-09-10'
sourceUpdated: '2026-09-10T03:49:54.418293155Z'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/GHSA-2q89-485c-9j2x'
references:
  - url: >-
      https://github.com/cloudflare/circl/security/advisories/GHSA-2q89-485c-9j2x
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2023-1732'
  - url: >-
      https://github.com/cloudflare/circl/commit/ff8d91225f8954b4970b6d6382d2e4c78f4a4cf8
  - url: 'https://github.com/cloudflare/circl'
  - url: 'https://github.com/cloudflare/circl/releases/tag/v1.3.3'
tags:
  - osv
  - go
epss: 0.00386
epssPercentile: 0.32566
ingestedAt: '2026-07-09T18:56:35.448Z'
---

## Overview

### 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


## Affected packages

- `github.com/cloudflare/circl < 1.3.3`

## Remediation

Upgrade to a patched release:

- `github.com/cloudflare/circl 1.3.3`
