Miggo Logo

CVE-2023-26557: IO FinNet tss-lib vulnerable to timing attack from non-constant time scalar arithmetic

7.5

CVSS Score
3.1

Basic Information

EPSS Score
0.30527%
Published
4/21/2023
Updated
2/5/2025
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
github.com/bnb-chain/tss-libgo< 1.3.6-0.20230324145555-bb6fb30bd3eb1.3.6-0.20230324145555-bb6fb30bd3eb
github.com/binance-chain/tss-libgo< 1.3.6-0.20230324145555-bb6fb30bd3eb1.3.6-0.20230324145555-bb6fb30bd3eb

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from using Go's non-constant time big.Int operations in cryptographic primitives. The paillier.go file is explicitly called out as containing an example leak. The Paillier cryptosystem implementation relies heavily on modular exponentiation and inverse operations for encryption/decryption, which when implemented with variable-time arithmetic (big.Int.Exp, big.Int.ModInverse) would leak timing information about the private lambda parameter. Key generation involving prime comparisons (Cmp) and lambda calculation would similarly leak timing information. The high confidence comes from the vulnerability description explicitly linking these operations to the side-channel leak.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

io.*inn*t tss-li* ***or* *.*.* **n l**k t** l*m*** v*lu* o* * priv*t* k*y vi* * timin* si**-***nn*l *tt**k ****us* it r*li*s on *o *i*.Int, w*i** is not *onst*nt tim* *or *mp, mo*ul*r *xpon*nti*tion, or mo*ul*r inv*rs*. *n *x*mpl* l**k is in *rypto/p

Reasoning

T** vuln*r**ility st*ms *rom usin* *o's non-*onst*nt tim* *i*.Int op*r*tions in *rypto*r*p*i* primitiv*s. T** p*illi*r.*o *il* is *xpli*itly **ll** out *s *ont*inin* *n *x*mpl* l**k. T** P*illi*r *ryptosyst*m impl*m*nt*tion r*li*s ***vily on mo*ul*r