@noble/hashes is vulnerable to Prototype Pollution
29
Low Risk
@noble/hashes funnels caller-supplied options through a shared checkOpts helper that, before 2.4.0, merged them with const merged = Object.assign(defaults, opts) and no __proto__ guard. Because Object.assign performs a [[Set]], an opts object carrying an own __proto__ data property (for example one produced by JSON.parse of untrusted input) redirects the prototype of the internal merged-options object, so inherited properties are read back as cryptographic option values such as a forged dkLen, key, salt, or personalization. Merging onto the plain-object defaults also meant omitted fields resolved against Object.prototype, so any ambient prototype pollution could feed forged option values into hashing, MAC, and key-derivation calls. The fix rejects own __proto__ option keys and builds the merged options on a null-prototype object (Object.create(null)).
You are affected if you are using a version that falls within the vulnerable range and your application forwards untrusted or externally influenced option objects into @noble/hashes hashing, MAC, or key-derivation functions.
@noble/hashes is vulnerable to Prototype Pollution in versions 0.4.0 - 2.3.0.
Upgrade the @noble/hashes library to the patch version.
Connect your repositories to instantly see whether vulnerable or malicious packages exist in your codebase.
Free. No credit card required.

I consent to receiving marketing communications based on Aikido’s Privacy Policy.
SOC 2Compliant
ISO 27001Compliant
ISO 42001Compliant© All Intel data is openly available and commercially licensed.