Node-forge has released version 0.10.0, presenting a more recent iteration of its JavaScript toolkit, built for network communication, cryptography, and data security. Comparing it with the previous stable version, 0.9.2, several changes emerge that developers should consider. While both versions share the same core purpose and licensing, the newer version incorporates updated development dependencies. For instance, webpack moves from version 3.11.0 to 4.44.1 and browserify from 16.1.0 to 16.5.2, reflecting an effort to stay current with build and bundling tools. The upgrade to eslint from ^5.16.0 to ^7.8.1, and eslint-config-digitalbazaar from ^2.0.0 to ^2.5.0 hints at increased code quality and adherence to modern linting standards. Karma, a test runner, also sees a significant jump from version 3.1.4 to 4.4.1, suggesting potential improvements in the testing infrastructure. Nyc upgrades from 14.1.1 to 15.1.0.
The unpacked size of version 0.10.0 is slightly smaller, at 1691149 bytes compared to 1696489 bytes in version 0.9.2, which may indicate optimizations in the codebase or build process. Both versions contain the same number of files (64). These updates collectively aim to provide a more stable, secure, and developer-friendly experience, particularly beneficial to those in the web security space implementing encryption and authentication mechanisms. Developers who prioritize security and staying up-to-date with the latest tooling should consider upgrading to version 0.10.0. The release dates are only minutes apart, so it might be related to bugfix and dependency upgrade.
All the vulnerabilities related to the version 0.10.0 of the package
Prototype Pollution in node-forge debug API.
The forge.debug
API had a potential prototype pollution issue if called with untrusted input. The API was only used for internal debug purposes in a safe way and never documented or advertised. It is suspected that uses of this API, if any exist, would likely not have used untrusted inputs in a vulnerable way.
The forge.debug
API and related functions were removed in 1.0.0.
Don't use the forge.debug
API directly or indirectly with untrusted input.
If you have any questions or comments about this advisory:
Open Redirect in node-forge
parseUrl functionality in node-forge mishandles certain uses of backslash such as https:/\/\/\
and interprets the URI as a relative path.
URL parsing in node-forge could lead to undesired behavior.
The regex used for the forge.util.parseUrl
API would not properly parse certain inputs resulting in a parsed data structure that could lead to undesired behavior.
forge.util.parseUrl
and other very old related URL APIs were removed in 1.0.0 in favor of letting applications use the more modern WHATWG URL Standard API.
Ensure code does not directly or indirectly call forge.util.parseUrl
with untrusted input.
If you have any questions or comments about this advisory:
Improper Verification of Cryptographic Signature in node-forge
RSA PKCS#1 v1.5 signature verification code is not properly checking DigestInfo
for a proper ASN.1 structure. This can lead to successful verification with signatures that contain invalid structures but a valid digest.
The issue has been addressed in node-forge
1.3.0
.
If you have any questions or comments about this advisory:
Improper Verification of Cryptographic Signature in node-forge
RSA PKCS#1 v1.5 signature verification code is lenient in checking the digest algorithm structure. This can allow a crafted structure that steals padding bytes and uses unchecked portion of the PKCS#1 encoded message to forge a signature when a low public exponent is being used.
The issue has been addressed in node-forge
1.3.0
.
For more information, please see "Bleichenbacher's RSA signature forgery based on implementation error" by Hal Finney.
If you have any questions or comments about this advisory:
Improper Verification of Cryptographic Signature in node-forge
RSA PKCS#1 v1.5 signature verification code does not check for tailing garbage bytes after decoding a DigestInfo
ASN.1 structure. This can allow padding bytes to be removed and garbage data added to forge a signature when a low public exponent is being used.
The issue has been addressed in node-forge
1.3.0
.
For more information, please see "Bleichenbacher's RSA signature forgery based on implementation error" by Hal Finney.
If you have any questions or comments about this advisory: