GHSA-xfrc-7mj2-5xh9 Undefined Behavior in zencashjs

Not scored Published

Incorrect address type detection in zencashjs can cause funds sent to specific mainnet P2SH addresses to be lost due to prefix collision with testnet addresses.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
A user has to click or open something
Fix
Available

What is GHSA-xfrc-7mj2-5xh9?

GHSA-xfrc-7mj2-5xh9 is a vulnerability in zencashjs, published on 3 Sep 2020. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.

Official description

Versions of zencashjs prior to 1.2.0 may cause loss of funds when used with cryptocurrency wallets. The package relies on a string comparison of the first two characters of a Horizen address to determine the destination address type of a transaction (P2PKH or P2SH). Due to the base58 address prefixes chosen in Horizen there exists the possibility of a clash of address prefixes for testnet P2PKH and mainnet P2SH addresses, testnet P2PKH addresses start with “zt” while a subset of mainnet P2SH addresses can also start with “zt”. The package interprets transactions sent to a “zt” P2SH address on mainnet as P2PKH transactions erroneously. Any funds sent to a mainnet P2SH multisignature address starting with “zt” will be sent to the wrong address and be lost.

Recommendation

Upgrade to version 1.2.0 or later.

Which versions are affected by GHSA-xfrc-7mj2-5xh9?

2 open source packages ship an affected version, including zencashjs.

PackageAffectedFixed in
zencashjs npmAll versions1.2.0
zencashjs npmAll versions1.2.0

How do I fix GHSA-xfrc-7mj2-5xh9?

Upgrade zencashjs to 1.2.0 or later.

Is GHSA-xfrc-7mj2-5xh9 being exploited?

There is no known exploitation of GHSA-xfrc-7mj2-5xh9 in the wild and no public exploit code.

Sources

Is GHSA-xfrc-7mj2-5xh9 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free