Miggo Logo

CVE-2023-45287: Before Go 1.20, the RSA based TLS key exchanges used the math/big library, which is not constant...

7.5

CVSS Score
3.1

Basic Information

EPSS Score
0.40827%
Published
12/5/2023
Updated
1/12/2024
KEV Status
No
Technology
-

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability (CVE-2023-45287) states that prior to Go 1.20, RSA-based TLS key exchanges used the math/big library, which is not constant time, leading to potential timing attacks. The Go vulnerability database (GO-2023-2375) explicitly lists several functions in the crypto/tls package as affected symbols. These functions are high-level entry points for establishing TLS connections and performing handshakes (e.g., Conn.Handshake, Dial). When these functions negotiate an RSA key exchange, they would, prior to the fix, invoke underlying RSA cryptographic operations that relied on the non-constant-time math/big library. Therefore, these crypto/tls functions would be present in a runtime profile when the vulnerability is triggered during an RSA key exchange. The fix involved switching the crypto/tls library to a fully constant-time RSA implementation. While the specific code diffs were not available through the tools, the official Go vulnerability database provides strong evidence for these functions being the relevant runtime indicators of the vulnerability's exploitation path. The file paths are standard locations for these Go crypto/tls functions.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

***or* *o *.**, t** RS* **s** TLS k*y *x***n**s us** t** m*t*/*i* li*r*ry, w*i** is not *onst*nt tim*. RS* *lin*in* w*s *ppli** to pr*v*nt timin* *tt**ks, *ut *n*lysis s*ows t*is m*y not **v* ***n *ully *****tiv*. In p*rti*ul*r it *pp**rs *s i* t** r

Reasoning

T** vuln*r**ility (*V*-****-*****) st*t*s t**t prior to *o *.**, RS*-**s** TLS k*y *x***n**s us** t** m*t*/*i* li*r*ry, w*i** is not *onst*nt tim*, l***in* to pot*nti*l timin* *tt**ks. T** *o vuln*r**ility **t***s* (*O-****-****) *xpli*itly lists s*v