CVE-2026-33863

CRITICAL
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

Description

### 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](https://github.com/mozilla/node-convict/security/advisories/GHSA-44fc-8fm5-q62h) Related issue: [https://github.com/mozilla/node-convict/issues/423](https://github.com/mozilla/node-convict/issues/423)

Analysis

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. …

Sign in for full analysis, threat intelligence, and remediation guidance.

Remediation

Within 24 hours: Identify all applications using npm package 'convict' (any version) by auditing package.json and dependency trees across your portfolio; document affected systems and their exposure to untrusted configuration sources. Within 7 days: Implement input validation on all configuration sources feeding into convict.load()/loadFile() methods; disable convict schema initialization from untrusted sources where feasible. …

Sign in for detailed remediation steps.

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