CVE-2026-33863
Critical · 9.3Convict has prototype pollution via load(), loadFile(), and schema initialization
CVSS
9.3
EPSS
—
Published
Mar 26, 2026
CISA due date
—
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | convict | 0 | 6.2.5 |
Related vulnerabilities
- GHSA-hf2r-9gf9-rwch Convict has prototype pollution via load(), loadFile(), and schema initialization Same vulnerability
- GHSA-44fc-8fm5-q62h Convict has Prototype Pollution via startsWith() function Also affects convict
- CVE-2026-33864 Convict has Prototype Pollution via startsWith() function Also affects convict
- CVE-2026-104852 GraphQL Tools provides utilities for building, stitching, and mocking GraphQL schemas. CWE-1321
- CVE-2026-104849 Tinypool is a minimal Node.js worker thread pool implementation. CWE-1321
- CVE-2026-104848 Tinypool is a minimal Node.js worker thread pool implementation. CWE-1321
- CVE-2026-104183 stream-json is a micro-library of stream components for processing JSON and JSONC with a… CWE-1321
- CVE-2026-102992 piscina is a node.js worker pool implementation. CWE-1321