Skip to main content

Node.js CVE-2026-33863

CRITICAL
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-03-26 https://github.com/mozilla/node-convict
Share

Lifecycle Timeline

3
Patch released
Mar 31, 2026 - 21:13 nvd
Patch available
Analysis Generated
Mar 26, 2026 - 19:00 vuln.today
CVE Published
Mar 26, 2026 - 18:50 nvd
CRITICAL

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 995 npm packages depend on convict (223 direct, 777 indirect)

Ecosystem-wide dependent count for version 6.2.5.

DescriptionCVE.org

Impact

Two unguarded prototype pollution paths exist, not covered by previous fixes:

  1. config.load() / config.loadFile() - overlay() recursively merges config data without checking for forbidden keys. Input containing __proto__ or constructor.prototype (e.g. from a JSON file) causes the recursion to reach Object.prototype and write attacker-controlled values onto it.
  2. Schema initialization - passing a schema with constructor.prototype.* keys to convict({...}) causes default-value propagation to write directly to Object.prototype at startup.

Depending on how polluted properties are consumed, impact ranges from unexpected behavior to authentication bypass or RCE.

Workarounds

Do not pass untrusted data to load(), loadFile(), or convict().

Resources

Prior advisory: GHSA-44fc-8fm5-q62h Related issue: https://github.com/mozilla/node-convict/issues/423

AnalysisAI

Prototype pollution in Mozilla's node-convict configuration library allows attackers to inject properties into Object.prototype via two unguarded code paths: config.load()/loadFile() methods that fail to filter forbidden keys during recursive merge operations, and schema initialization accepting constructor.prototype.* keys during default-value propagation. Applications using node-convict (pkg:npm/convict) that process untrusted configuration data face impacts ranging from authentication bypass to remote code execution depending on how polluted properties propagate through the application. This represents an incomplete fix for prior prototype pollution issues (GHSA-44fc-8fm5-q62h), with no public exploit identified at time of analysis.

Technical ContextAI

The vulnerability affects Mozilla's node-convict library (CPE: pkg:npm/convict), a configuration management module for Node.js applications that validates and loads configuration from various sources including JSON files and environment variables. The root cause is CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes, commonly known as prototype pollution), where the overlay() function recursively merges configuration objects without sanitizing keys like __proto__ or constructor.prototype. JavaScript's prototype chain allows modifications to Object.prototype to propagate globally, enabling attackers to inject properties that affect all objects. The vulnerability bypasses earlier security patches documented in GHSA-44fc-8fm5-q62h, exposing two distinct attack vectors: runtime configuration loading via load()/loadFile() methods and schema initialization during convict() constructor invocation.

RemediationAI

Upgrade to the patched version of node-convict specified in the vendor security advisory at https://github.com/mozilla/node-convict/security/advisories/GHSA-hf2r-9gf9-rwch (exact version number not provided in available intelligence data). As an interim workaround until patching is completed, implement strict input validation to reject configuration data from untrusted sources passed to load(), loadFile(), or convict() constructor methods. Specifically, sanitize or reject any configuration objects containing __proto__, constructor, or prototype keys before processing. Review application architecture to ensure configuration loading occurs only from trusted, controlled sources rather than user-supplied files or external APIs. For defense-in-depth, consider using Object.freeze(Object.prototype) at application startup to prevent prototype modifications, though this may break legitimate application functionality and should be tested thoroughly. Consult the prior advisory GHSA-44fc-8fm5-q62h at https://github.com/mozilla/node-convict/security/advisories/GHSA-44fc-8fm5-q62h for additional context on related prototype pollution patterns in this library.

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

CVE-2016-2107 MEDIUM POC
5.9 May 05

The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a

Share

CVE-2026-33863 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy