Node-forge, a versatile JavaScript library providing comprehensive tools for network communication, cryptography, and data handling, saw a notable update with the release of version 0.8.0 following version 0.7.6. Both versions offer a rich set of functionalities including implementations of ciphers, PKI, message digests, and various utilities, making them valuable assets for developers tackling security-sensitive tasks.
A key difference between the two versions lies in their development dependencies, reflecting updates in the testing and build environments. Version 0.8.0 upgrades Karma to version 3.1.4 and Karma-webpack to version 3.0.5, while 0.7.6 utilizes Karma version 2.0.0 and Karma-webpack 2.0.13. Most notably, version 0.8.0 replaces karma-phantomjs-launcher, a now deprecated package, with newer browser testing solutions, indicating a move towards more modern and actively maintained testing frameworks. Additionally, version 0.8.0 updates nyc to version 13.1.0, from v11.5.0, hinting at improvements in test coverage reporting.
While the core functionalities remain consistent, the updated dependencies in version 0.8.0 suggest improved stability, testing practices, and potentially enhanced performance. Developers should evaluate these dependency updates for compatibility with their existing projects and consider the benefits of using the latest testing tools. The slight increase in unpacked size in version 0.8.0 may be attributed to these updated dependencies or minor code adjustments. Ultimately, the choice between versions depends on the developer's specific needs and project requirements, with version 0.8.0 offering the advantages of a more up-to-date development ecosystem.
All the vulnerabilities related to the version 0.8.0 of the package
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:
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.
Prototype Pollution in node-forge
The package node-forge before 0.10.0 is vulnerable to Prototype Pollution via the util.setPath function. Note: version 0.10.0 is a breaking change removing the vulnerable functions.
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:
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:
Prototype Pollution in node-forge util.setPath API
forge.util.setPath
had a potential prototype pollution issue if called with untrusted keys. This API was not used by forge itself.
The forge.util.setPath
API and related functions were removed in 0.10.0.
Don't call forge.util.setPath
directly or indirectly with untrusted keys.
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: