Skip to main content

Mozilla node-convict CVE-2026-106550

| EUVDEUVD-2026-93988 HIGH
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-10-06 certcc GHSA-37q3-7h5g-p75h
7.5
CVSS 3.1 · Vendor: certcc
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach endpoint forwarding config keys
  2. Delivery
    Submit crafted constructor.<key> key
  3. Exploit
    Bypass prototype-pollution filters in config.set
  4. Execution
    walk() resolves to global Object, overwrites Object.assign
  5. Impact
    Process-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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Node-convict 6.2.2

Affected Packages

euvd node_convict no fix

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

Vendor (certcc) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

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

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Red Hat 7.5 HIGH

Primary rating from Vendor (certcc).

CVSS VectorVendor: certcc

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

3
CVSS changed
Oct 07, 2026 - 16:22 NVD
7.5 (None) 7.5 (HIGH)
CVE Published
Oct 06, 2026 - 20:09 cve.org
HIGH 7.5
CVE Published
Oct 06, 2026 - 20:09 cve.org
UNKNOWN (no severity yet)

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

Why It Matters

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.

Business Impact: Medium
Compensating Controls

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

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Medium
popular Node.js configuration library, but exploitable footprint depends on app wiring
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Medium
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2026-34621 HIGH POC
8.6 Apr 11

Prototype pollution in Adobe Acrobat Reader versions 24.001.30356, 26.001.21367 and earlier enables arbitrary code execu

CVE-2021-23450 CRITICAL POC
9.8 Dec 17

All versions of package dojo are vulnerable to Prototype Pollution via the setObject function. Rated critical severity (

CVE-2024-56059 CRITICAL
9.8 Dec 18

Prototype pollution in the farinspace Partners WordPress plugin (versions up to and including 0.2.0) enables remote unau

CVE-2021-23383 CRITICAL POC
9.8 May 04

The package handlebars before 4.7.7 are vulnerable to Prototype Pollution when selecting certain compiling options to co

CVE-2020-7788 CRITICAL POC
9.8 Dec 11

This affects the package ini before 1.3.6. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitabl

CVE-2020-28271 CRITICAL POC
9.8 Nov 12

Prototype pollution vulnerability in 'deephas' versions 1.0.0 through 1.0.5 allows attacker to cause a denial of service

CVE-2023-38894 CRITICAL POC
9.8 Aug 16

A Prototype Pollution issue in Cronvel Tree-kit v.0.7.4 and before allows a remote attacker to execute arbitrary code vi

CVE-2024-24292 CRITICAL POC
9.8 Mar 28

A Prototype Pollution issue in Aliconnect /sdk v.0.0.6 allows an attacker to execute arbitrary code via the aim function

CVE-2023-26121 CRITICAL POC
10.0 Apr 11

All versions of the package safe-eval are vulnerable to Prototype Pollution via the safeEval function, due to improper s

CVE-2021-23449 CRITICAL POC
10.0 Oct 18

This affects the package vm2 before 3.9.4 via a Prototype Pollution attack vector, which can lead to execution of arbitr

CVE-2024-39011 CRITICAL POC
9.8 Jul 30

Prototype Pollution in chargeover redoc v2.0.9-rc.69 allows attackers to execute arbitrary code or cause a Denial of Ser

CVE-2024-38988 CRITICAL POC
9.8 Mar 28

alizeait unflatto <= 1.0.2 was discovered to contain a prototype pollution via the method exports.unflatto at /dist/inde

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy