{"id":"CVE-2026-33863","aliases":[],"url":"https://o3.security/vulnerability/CVE-2026-33863","summary":"Convict has prototype pollution via load(), loadFile(), and schema initialization","details":"### Impact\nTwo unguarded prototype pollution paths exist, not covered by previous fixes:\n\n1. `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.\n2. Schema initialization — passing a schema with `constructor.prototype.*` keys to `convict({...})` causes default-value propagation to write directly to `Object.prototype` at startup.\n\nDepending on how polluted properties are consumed, impact ranges from unexpected behavior to authentication bypass or RCE.\n\n### Workarounds\nDo not pass untrusted data to load(), loadFile(), or convict().\n\n### Resources\nPrior advisory: [GHSA-44fc-8fm5-q62h](https://github.com/mozilla/node-convict/security/advisories/GHSA-44fc-8fm5-q62h)\nRelated issue: [https://github.com/mozilla/node-convict/issues/423](https://github.com/mozilla/node-convict/issues/423)","published":"2026-03-26T18:50:33Z","modified":"2026-03-26T19:02:47.500634Z","cvss":null,"epss":null,"cisaKev":null,"exploitsKnown":null,"affectedPackages":[{"ecosystem":"npm","name":"convict","fixedVersion":"6.2.5"}],"fix":null,"references":[{"type":"WEB","url":"https://github.com/mozilla/node-convict/security/advisories/GHSA-44fc-8fm5-q62h"},{"type":"WEB","url":"https://github.com/mozilla/node-convict/security/advisories/GHSA-hf2r-9gf9-rwch"},{"type":"WEB","url":"https://github.com/mozilla/node-convict/issues/423"},{"type":"PACKAGE","url":"https://github.com/mozilla/node-convict"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-03-26T19:02:47.500634Z"}}