Vulnerability · Published Feb 21, 2024 · Assigned by Dfinity

CVE-2024-1631agent-js: Insecure Key Generation in `Ed25519KeyIdentity.generate`

Critical 9.1

In plain English

A critical-severity weak randomness in agent-js from Internet Computer. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.9% (higher than 59% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)9.1Critical
Exploit odds (30 days)0.9%top 40.7% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

Impact: The library offers a function to generate an ed25519 key pair via Ed25519KeyIdentity.generate with an optional param to provide a 32 byte seed value, which will then be used as the secret key. When no seed value is provided, it is expected that the library generates the secret key using secure randomness. However, a recent change broke this guarantee and uses an insecure seed for key pair generation. Since the private key of this identity (535yc-uxytb-gfk7h-tny7p-vjkoe-i4krp-3qmcl-uqfgr-cpgej-yqtjq-rqe) is compromised, one could lose funds associated with the principal on ledgers or lose access to a canister where this principal is the controller.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
npm@dfinity/auth-client1.0.1GHSA-c9vv-fhgv-cjc3
npm@dfinity/identity1.0.1GHSA-c9vv-fhgv-cjc3

Affected products (as reported)

VendorProductVersions
Internet Computer agent-js v0.20.0-beta.0 – before v1.0.1

Weakness: CWE-321, CWE-330 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

References