Severity by source
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:L/VI:H/VA:L/SC:N/SI:L/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Local vector because exploit requires a workspace file on disk; PR:N since attacker supplies the file, not the victim's credentials; UI:R as victim must open the workspace; integrity high due to Object.prototype corruption across the process.
Primary rating from Vendor (eclipse).
CVSS VectorVendor: eclipse
Lifecycle Timeline
2DescriptionCVE.org
In Eclipse Theia versions 0.7.0 and up until including 1.73.1, the PreferenceUtils.merge function in @theia/core recursively merges preference values without rejecting prototype-related keys (__proto__, constructor, prototype). Because this function is invoked by PreferenceServiceImpl.doResolve for every preference resolution across scopes (default, user, workspace, folder), a crafted preference value in a workspace settings file (.theia/settings.json or .vscode/settings.json) can pollute Object.prototype when the user opens the workspace, potentially altering application logic across the Theia process.
AnalysisAI
Prototype pollution in Eclipse Theia's preference resolution system exposes developers to application-logic manipulation when opening crafted workspaces. The PreferenceUtils.merge function in @theia/core, invoked for every preference scope resolution, fails to reject reserved JavaScript prototype keys (__proto__, constructor, prototype), allowing a malicious .theia/settings.json or .vscode/settings.json to corrupt Object.prototype across the entire Theia Node.js process. Affected versions span 0.7.0 through 1.73.1 inclusive; no public exploit has been identified at time of analysis, and the CVSS 4.0 score of 5.7 appropriately reflects the social-engineering dependency and required user interaction.
Technical ContextAI
Eclipse Theia is an open-source, TypeScript/Node.js-based IDE framework used to build cloud and desktop development environments. The flaw resides in the PreferenceUtils.merge function within the @theia/core npm package, which is called by PreferenceServiceImpl.doResolve during preference resolution across four scopes: default, user, workspace, and folder. CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes) describes the root cause: recursive object merging without a prototype-key allowlist or denylist. In JavaScript/Node.js environments, successfully setting __proto__ on a merged object propagates to Object.prototype, meaning every subsequently created object in the process inherits the injected properties. Because Theia processes host IDE logic server-side as well as client-side UI, the blast radius of a successful prototype pollution extends across plugin execution, file system access, and inter-process communication within the IDE.
RemediationAI
Consult the vendor advisory at https://github.com/eclipse-theia/theia/security/advisories/GHSA-f3w9-qfw3-xr32 for the exact patched release version, as no specific fix version was confirmed in the available data - upgrade beyond 1.73.1 once a patched release is published. The upstream fix should introduce prototype-key filtering (rejecting __proto__, constructor, and prototype keys) within PreferenceUtils.merge. As a compensating control pending an official patch, organizations should enforce a policy prohibiting developers from opening workspaces from unreviewed or untrusted sources, since .theia/settings.json and .vscode/settings.json are parsed automatically on workspace load. Where Theia is deployed in a shared cloud IDE environment, restricting write access to workspace settings directories limits attacker ability to pre-stage malicious files. Disabling workspace-level preference resolution entirely (if configurable in the deployment) would fully mitigate the vector at the cost of blocking legitimate per-workspace IDE customization. No generic network-layer controls are effective, as this is a local workspace-file attack.
More in Prototype Pollution
View allPrototype pollution in Adobe Acrobat Reader versions 24.001.30356, 26.001.21367 and earlier enables arbitrary code execu
Prototype pollution in the farinspace Partners WordPress plugin (versions up to and including 0.2.0) enables remote unau
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
A vulnerability exists in the 'dagre-d3-es' Node.js package version 7.0.9, specifically within the 'bk' module's addConf
A Prototype Pollution vulnerability in the util-deps.addFileDepend function of magix-combine-ex versions thru 1.2.10 all
Chartist 1.x through 1.3.0 allows Prototype Pollution via the extend function. Rated critical severity (CVSS 9.8), this
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-53302
GHSA-5f8h-2xph-wwxv