Skip to main content

Style Dictionary EUVDEUVD-2026-38640

| CVE-2026-54639 HIGH
Improperly Controlled Modification of Object Prototype Attributes (Prototype Pollution) (CWE-1321)
2026-06-24 GitHub_M GHSA-vj5c-m527-mpff
8.8
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
8.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
vuln.today AI
8.5 HIGH

AV:N reflects highest-risk server deployments accepting untrusted token data; AC:H because exploitation depends on that specific deployment pattern; PR:L for typical authenticated token-submission workflows.

3.1 AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Metadata Corrected
Sep 16, 2026 - 08:40 vuln.today
tag: Information Disclosure removed
Patch available
Jun 24, 2026 - 02:00 EUVD
Source Code Evidence Fetched
Jun 24, 2026 - 00:41 vuln.today
Analysis Generated
Jun 24, 2026 - 00:41 vuln.today
CVE Published
Jun 24, 2026 - 00:17 cve.org
HIGH 8.8

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 1 npm packages depend on style-dictionary (1 direct, 0 indirect)

Ecosystem-wide dependent count for version 4.3.0.

DescriptionCVE.org

Style Dictionary, a build system for creating cross-platform styles, has a prototype pollution vulnerability starting in version 4.3.0 and prior to version 5.4.4. Impact users have: direct usage of convertTokenData(tokens, { output: 'object' });; indirect usage, via using Expand API; and/or indirect usage via SD's transform lifecycle. Impact is high for this when style-dictionary is used as an integration in a NodeJS server application. Impact is moderate for when style-dictionary is used as an integration in a Web application. Impact is low for most common cases where the user of style-dictionary also maintains the tokens, and access is limited via read/write access to the repository/workflows where it is used. A patch has been published in version 5.4.4. The only known workaround is to sanitize token data first. Whether using DTCG format or old Style Dictionary format, check the token data object recursively for any object keys that include __proto__.

AnalysisAI

Prototype pollution in Style Dictionary's convertTokenData() utility function allows an attacker who can supply token data with a __proto__-keyed entry to corrupt Object.prototype globally, affecting all downstream object operations in the same runtime. All deployments using versions 4.3.0 through 5.4.3 on npm are affected, with severity scaling sharply by context: Node.js server applications ingesting untrusted token data face high-impact exploitation, while build-time-only pipelines with controlled token sources face low residual risk. A publicly available proof-of-concept exists (GitHub Gist), though SSVC signals exploitation activity as none at time of analysis.

Technical ContextAI

Style Dictionary (CPE: cpe:2.3:a:style-dictionary:style-dictionary) is a Node.js build system for cross-platform design tokens distributed via npm. The vulnerability resides in lib/utils/convertTokenData.js, specifically in the path-splitting logic (lines L40-L50) that converts a token array entry's key string into a nested object path via property assignment. When a token key such as {__proto__.a} is processed, the function dissects it into obj['__proto__']['a'] = value, mutating Object.prototype globally rather than setting a property on a normal object. This is a textbook CWE-1321 (Improperly Controlled Modification of Object Prototype Attributes) instance introduced in v4.3.0. The pollution is triggered through three surfaces: direct calls to convertTokenData(tokens, { output: 'object' }), the Expand API (when expand is not explicitly disabled), and the transform lifecycle sync of sd.tokens with sd.tokenMap.

RemediationAI

Upgrade to Style Dictionary v5.4.4, which patches lib/utils/convertTokenData.js to skip any token key containing __proto__ before the path-splitting assignment. The fix PR and commit are at https://github.com/style-dictionary/style-dictionary/pull/1702 and commit 23b5e8d. If upgrading is not immediately possible, the only confirmed workaround is to recursively scan all token data objects for any key containing __proto__ and reject or strip them before passing to the library. For users of the Expand API, additionally set expand: false in the StyleDictionary configuration to block the second exploitation path, noting this disables token expansion functionality. For Node.js server deployments ingesting untrusted token data, consider schema validation at the API boundary that rejects keys matching /(__proto__|constructor|prototype)/ before any processing.

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

CVE-2025-57347 CRITICAL POC
9.8 Sep 24

A vulnerability exists in the 'dagre-d3-es' Node.js package version 7.0.9, specifically within the 'bk' module's addConf

CVE-2025-57321 CRITICAL POC
9.8 Sep 24

A Prototype Pollution vulnerability in the util-deps.addFileDepend function of magix-combine-ex versions thru 1.2.10 all

CVE-2024-45435 CRITICAL POC
9.8 Aug 29

Chartist 1.x through 1.3.0 allows Prototype Pollution via the extend function. Rated critical severity (CVSS 9.8), this

Share

EUVD-2026-38640 vulnerability details – vuln.today

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