GitHub Advisoryadvisory · npm
GHSA-hf2r-9gf9-rwch Convict has prototype pollution via load(), loadFile(), and schema initialization
CRITICAL
Official page ↗
- Aliases
- CVE-2026-33863
- Ecosystem
- npm
- Packages
- convict
- Severity
- Critical
- CVSS vector
- CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
- Weaknesses
- CWE-1321
- Reviewed
- 2026-03-26
Affected packages
• npm convict: < 6.2.5 → fixed in 6.2.5
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
Related issue: https://github.com/mozilla/node-convict/issues/423
Related
Alias · not in database (1)
Weakness · CWE (1)
- CWE-1321 Improperly Controlled Modification of Object Prototype Attributes weakness