Intel

AIKIDO-2026-963596

@noble/hashes is vulnerable to Prototype Pollution

Prototype Pollution Pre-CVE
Found by Aikido Intel before public disclosure or CVE publication.
Published Today

29

Low Risk

This Affects:

JS@noble/hashes
0.4.0 - 2.3.0
Fixed in 2.4.0
Are you affected? Scan for Free

TL;DR

@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)).

Who does this affect?

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.

Background info

@noble/hashes is vulnerable to Prototype Pollution in versions 0.4.0 - 2.3.0.

How to fix this

Upgrade the @noble/hashes library to the patch version.

Are You Affected?

Connect your repositories to instantly see whether vulnerable or malicious packages exist in your codebase.

Free. No credit card required.

Aikido Platform