GitHub Advisoryadvisory · npm

GHSA-jp4x-w63m-7wgm Prototype Pollution in hoek

HIGH Published 2018-04-26 Modified 2025-05-29 Official page ↗
Aliases
CVE-2018-3728
Ecosystem
npm
Packages
hoek
Severity
High
CVSS vector
CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weaknesses
CWE-1321
Reviewed
2020-06-16

Affected packages

• npm hoek: >= 5.0.0, < 5.0.3 → fixed in 5.0.3 • npm hoek: < 4.2.1 → fixed in 4.2.1

Description

Versions of `hoek` prior to 4.2.1 and 5.0.3 are vulnerable to prototype pollution. The `merge` function, and the `applyToDefaults` and `applyToDefaultsWithShallow` functions which leverage `merge` behind the scenes, are vulnerable to a prototype pollution attack when provided an _unvalidated_ payload created from a JSON string containing the `__proto__` property. This can be demonstrated like so: ```javascript var Hoek = require('hoek'); var malicious_payload = '{"__proto__":{"oops":"It works !"}}'; var a = {}; console.log("Before : " + a.oops); Hoek.merge({}, JSON.parse(malicious_payload)); console.log("After : " + a.oops); ``` This type of attack can be used to overwrite existing properties causing a potential denial of service. Recommendation Update to version 4.2.1, 5.0.3 or later.

Related

Alias · CVE (1)

  • CVE-2018-3728 hoek node module before 4.2.0 and 5.0.x before 5.0.3 suffers from a Modification of Assumed-Immutable Data (MAID) vulnerability via 'merge'… vulnerability

Weakness · CWE (1)

  • CWE-1321 Improperly Controlled Modification of Object Prototype Attributes weakness

References