Skip to content

Improper Verification of Cryptographic Signature

Critical severity GitHub Reviewed Published Jun 15, 2021 in TogaTech/tEnvoy • Updated Jan 9, 2023

Package

npm tenvoy (npm)

Affected versions

< 7.0.3

Patched versions

7.0.3

Description

Impact

The verifyWithMessage method of tEnvoyNaClSigningKey always returns true for any signature of a SHA-512 hash matching the SHA-512 hash of the message even if the signature is invalid.

Patches

Upgrade to v7.0.3 immediately to resolve this issue. Since the vulnerability lies within the verification method, the previous signatures are still valid. We highly recommend reverifying any signatures that were previously verified with the vulnerable verifyWithMessage method.

Workarounds

In tenvoy.js under the verifyWithMessage method definition within the tEnvoyNaClSigningKey class, ensure that the return statement call to this.verify ends in .verified. For example, the return statement should start with return this.verify(signed, password).verified && instead of return this.verify(signed, password) && .

For more information

If you have any questions or comments about this advisory:

References

@CMEONE CMEONE published to TogaTech/tEnvoy Jun 15, 2021
Reviewed Jun 16, 2021
Published to the GitHub Advisory Database Jun 28, 2021
Last updated Jan 9, 2023

Severity

Critical
9.8
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Weaknesses

CVE ID

No known CVE

GHSA ID

GHSA-7r96-8g3x-g36m

Source code

Checking history
See something to contribute? Suggest improvements for this vulnerability.