Miggo Logo

GHSA-9763-4f94-gfch: CIRCL's Kyber: timing side-channel (kyberslash2)

N/A

CVSS Score

Basic Information

CVE ID
-
EPSS Score
-
CWE
-
Published
1/8/2024
Updated
5/20/2024
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
-
Package NameEcosystemVulnerable VersionsFirst Patched Version
github.com/cloudflare/circlgo< 1.3.71.3.7

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability (KyberSlash2) is a timing side-channel attack that occurs during the decapsulation of Kyber ciphertexts. The provided commit 75ef91e8a2f438e6ce2b6e620d236add8be1887d directly addresses this by modifying the CompressTo function in pke/kyber/internal/common/poly.go. The commit message explicitly states: 'kyber: remove division by q in ciphertext compression. On some platforms, division by q leaks some information on the ciphertext by its timing.' The patch replaces the direct division operations within CompressTo with an alternative method (multiplication and bit-shifting) to achieve a more constant-time behavior. This directly points to the original implementation of CompressTo as the function containing the vulnerable code (the data-dependent timing division). The KyberSlash2 attack exploits such timing variations in the compression step when it's used as part of the re-encryption in the Fujisaki-Okamoto transform during decapsulation. Therefore, (*github.com/cloudflare/circl/pke/kyber/internal/common.Poly).CompressTo is the identified vulnerable function as it contained the timing-variable operation that could be exploited.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Imp**t On som* pl*t*orms, w**n *n *tt**k*r **n tim* ****psul*tion o* Ky**r on *or*** *ip**r t*xts, t**y *oul* possi*ly l**rn (p*rts o*) t** s**r*t k*y. *o*s not *pply to *p**m*r*l us***, su** *s w**n us** in t** r**ul*r w*y in TLS. ### P*t***s

Reasoning

T** vuln*r**ility (Ky**rSl*s**) is * timin* si**-***nn*l *tt**k t**t o**urs *urin* t** ****psul*tion o* Ky**r *ip**rt*xts. T** provi*** *ommit `****************************************` *ir**tly ***r*ss*s t*is *y mo*i*yin* t** `*ompr*ssTo` *un*tion i