Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach endpoint forwarding config keys
-
DeliverySubmit crafted constructor.<key> key
-
ExploitBypass prototype-pollution filters in config.set
-
Executionwalk() resolves to global Object, overwrites Object.assign
-
ImpactProcess-wide failures persist, restart required
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V3 - Web Frontend Security Prototype pollution prevention
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an application that forwards attacker-controlled property names as the key argument into convict's config.set() - for example an HTTP endpoint or form handler that maps untrusted field names to config keys. The attacker must supply a key resolving to constructor.<method> (such as constructor.assign), which walk() resolves to the global Object function; the existing filters only block constructor.prototype.* and __proto__.*, so those specific prefixes do not help. Limiting factors: this is NOT exploitable against a default, hardcoded, or internally-populated convict configuration - only configurations driven by externally-controlled keys are affected, which materially narrows the real-world attack surface despite the AV:N/PR:N rating. Impact is limited to availability (process-wide failure needing a restart); no data disclosure or code execution. |
| Impact | Signals here are moderate and largely consistent with a real-but-not-urgent issue. The input CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, score 7.5) rates this HIGH purely on availability impact, with no confidentiality or integrity loss. That raw score overstates practical risk because the description adds a hard precondition the CVSS vector does not capture: exploitation 'requires an endpoint that forwards attacker-controlled keys into config.set().' This is a deployment-specific wiring requirement, not a default-configuration remote flaw, so the effective reachability is narrower than AV:N/PR:N implies - verify against the actual application. EPSS is low (0.24%, 14th percentile) and SSVC reports Exploitation: none, meaning no observed or public exploitation; the issue is NOT in CISA KEV and there is no public exploit identified at time of analysis. The one signal pointing to elevated concern is SSVC Automatable: yes - once a vulnerable key-forwarding endpoint exists, the attack is scriptable and repeatable - but Technical Impact is only 'partial' (DoS requiring restart, not code execution). Net: this is a legitimate availability bug worth patching on a normal cycle for teams that pass untrusted keys into convict, but not an emergency given no exploitation, low EPSS, and the non-default exposure requirement. |
| Exploit ScenarioDerived | A Node.js application exposes an API or form endpoint that passes user-supplied field names directly as keys into convict's config.set(). An attacker submits a key resolving to constructor.<method> (e.g. constructor.assign), bypassing the filters that only block constructor.prototype.* and __proto__.*, and overwrites a core method like Object.assign. The corrupted global method causes process-wide failures that persist until the service is restarted. No public exploit code has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Denial of service in Mozilla node-convict 6.2.2 and later allows remote, unauthenticated attackers to overwrite core JavaScript methods on the global Object function via config.set(), causing persistent process-wide failure that requires a restart. The flaw arises because the library's prototype-pollution filters only block constructor.prototype.* and __proto__.* key paths, while a key such as constructor.assign is resolved by walk() to the global Object constructor, permitting tampering with methods like Object.assign. Exploitation is not automatic: it requires an application endpoint or handler that forwards attacker-controlled property names directly into config.set(), so only configurations driven by untrusted keys are exposed; no public exploit code has been identified and EPSS is low (0.24%, 14th percentile), with CISA SSVC recording Exploitation: none and no KEV listing.
RemediationAI
No vendor-released patch version is identified in the provided intelligence at time of analysis; monitor the upstream repository at https://github.com/mozilla/node-convict and the NVD entry https://nvd.nist.gov/vuln/detail/CVE-2026-106550 for an updated release. Until a fix ships, the most effective control is to stop untrusted property names from reaching config.set(): enforce a strict allow-list of known configuration keys at every application boundary (HTTP handlers, form parsers, queue consumers, CLI wrappers) and reject any key containing 'constructor', 'prototype', or '__proto__' - note that allow-listing is the strongest option but will break features that intentionally accept dynamic or user-defined config keys. If dynamic keys must be supported, add an explicit block on the 'constructor' prefix in addition to the library's existing constructor.prototype.* and __proto__.* filters, and validate that resolved keys map to plain own properties rather than built-in functions; the trade-off is that any missed resolution path or library upgrade can silently reopen the sink. As a resilience measure, run node-convict-based services under a supervisor or orchestrator with automatic restart so a clobbered built-in produces only a brief outage, accepting that in-memory state is lost on each restart. Because the issue only manifests on configurations driven by externally controlled keys, auditing whether any endpoint forwards request field names into config.set() is itself a high-value triage step; a default, hardcoded, or internally populated configuration is not exploitable.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
node-convict is a Mozilla-maintained Node.js configuration library that layers schema validation, environment variables, and command-line overrides on top of a JSON config object. This issue is an instance of CWE-1321 (improperly controlled modification of object prototype attributes, i.e. prototype pollution), but with a notable twist: rather than polluting Object.prototype, the vulnerable walk() routine in config.set() resolves a dotted key path step by step, and a key segment named 'constructor' resolves to the global Object constructor itself. Writing constructor.<key> therefore sets a property directly on the Object function - for example Object.assign - rather than on any instance prototype. The existing guards block only constructor.prototype.* and __proto__.* prefixes, so they do not match this sink, and the write persists for the lifetime of the Node process, breaking unrelated code that relies on the clobbered built-in. The CVSS vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H describes a network-reachable, unauthenticated path with no confidentiality or integrity impact scored, and a high availability impact, which matches the described outcome of a process-wide failure requiring restart. Affected product identity is tracked as cpe:2.3:a:mozilla:node-convict:*:*:*:*:*:*:*:* (all versions in the CPE range) with EUVD recording Node-convict 6.2.2 as an affected version.
Know when Prototype Pollution gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Network-reachable via a key-forwarding endpoint with no auth or user interaction (AV:N/AC:L/PR:N/UI:N); impact is availability-only DoS requiring restart (A:H, C:N/I:N).
Primary rating from Vendor (certcc).
CVSS VectorVendor: certcc
Lifecycle Timeline
3DescriptionCVE.org
Mozilla's Node-convict (version 6.2.2 and later) is vulnerable to a Denial of Service vulnerability caused by incomplete prototype‑pollution protections in config.set(). An attacker controlling the configuration key can write arbitrary properties to constructor.<key>, which walk() resolves to the global Object function. This allows overwriting core JavaScript methods such as Object.assign, leading to persistent process-wide failures and requiring a restart. The issue bypasses existing filters that only block constructor.prototype.* and __proto__.*. Exploitation requires an endpoint that forwards attacker-controlled keys into config.set().
Executive ViewAI
Mozilla node-convict versions 6.2.2 and later contain a high-severity denial-of-service flaw that can cause persistent process-wide failure in Node.js applications, requiring a restart to recover. Organizations are affected only if they expose an application endpoint or handler that passes attacker-controlled configuration keys into config.set(), so this is not a default exposure. Leadership should prioritize inventory and mitigation because no vendor-released patch is available and a successful exploit could disrupt service availability for dependent applications.
No vendor-released patch identified at time of analysis. Interim mitigations include enforcing strict allowlisting and input validation on all configuration keys, never passing untrusted property names directly to config.set(), blocking or sanitizing key paths such as constructor.assign and __proto__ or constructor.prototype patterns, restricting network exposure of affected endpoints, deploying API gateway or WAF rules, monitoring and automatically restarting affected Node.js processes, and evaluating a downgrade to a version prior to 6.2.2 only if supported and tested.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
More in Prototype Pollution
View allPrototype pollution in Adobe Acrobat Reader versions 24.001.30356, 26.001.21367 and earlier enables arbitrary code execu
All versions of package dojo are vulnerable to Prototype Pollution via the setObject function. Rated critical severity (
Prototype pollution in the farinspace Partners WordPress plugin (versions up to and including 0.2.0) enables remote unau
The package handlebars before 4.7.7 are vulnerable to Prototype Pollution when selecting certain compiling options to co
This affects the package ini before 1.3.6. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitabl
Prototype pollution vulnerability in 'deephas' versions 1.0.0 through 1.0.5 allows attacker to cause a denial of service
A Prototype Pollution issue in Cronvel Tree-kit v.0.7.4 and before allows a remote attacker to execute arbitrary code vi
A Prototype Pollution issue in Aliconnect /sdk v.0.0.6 allows an attacker to execute arbitrary code via the aim function
All versions of the package safe-eval are vulnerable to Prototype Pollution via the safeEval function, due to improper s
This affects the package vm2 before 3.9.4 via a Prototype Pollution attack vector, which can lead to execution of arbitr
Prototype Pollution in chargeover redoc v2.0.9-rc.69 allows attackers to execute arbitrary code or cause a Denial of Ser
alizeait unflatto <= 1.0.2 was discovered to contain a prototype pollution via the method exports.unflatto at /dist/inde
EUVD-2026-93988
GHSA-37q3-7h5g-p75h
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB