{"metadata": {"vulnerability": "CVE-2026-54639", "count": 15, "kinds": {"milestone": 5, "sighting": 1, "kev": 0, "other": 9}}, "data": [{"timestamp": "2026-06-15T20:07:02.186Z", "date_only": false, "value": "2026-06-15T20:07:02.186Z", "kind": "milestone", "label": "Reserved", "source": "cvelistv5", "record": "CVE-2026-54639", "field": "cveMetadata.dateReserved"}, {"timestamp": "2026-06-24T00:17:44.889Z", "date_only": false, "value": "2026-06-24T00:17:44.889Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-54639", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-06-24T00:17:44.889Z", "date_only": false, "value": "2026-06-24T00:17:44.889Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / GitHub_M", "record": "CVE-2026-54639", "field": "containers.cna.providerMetadata.dateUpdated"}, {"timestamp": "2026-06-24T01:16:25Z", "date_only": false, "value": "2026-06-24T01:16:25Z", "kind": "other", "label": "Nvd published at", "source": "github \u00b7 GHSA-VJ5C-M527-MPFF", "record": "GHSA-VJ5C-M527-MPFF", "field": "database_specific.nvd_published_at"}, {"timestamp": "2026-06-24T01:16:25.363Z", "date_only": false, "value": "2026-06-24T01:16:25.363", "kind": "milestone", "label": "Published", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-54639", "record": "FKIE_CVE-2026-54639", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-06-24T13:00:58.855Z", "date_only": false, "value": "2026-06-24T13:00:58.855282Z", "kind": "other", "label": "Recorded", "source": "cvelistv5 / CISA-ADP", "record": "CVE-2026-54639", "field": "containers.adp.0.metrics.0.other.content.timestamp"}, {"timestamp": "2026-06-24T13:00:58.855Z", "date_only": false, "value": "2026-06-24T13:00:58.855282Z", "kind": "other", "label": "Recorded", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-54639", "record": "FKIE_CVE-2026-54639", "field": "metrics.ssvcV203.0.ssvcData.timestamp"}, {"timestamp": "2026-06-24T13:02:09.090Z", "date_only": false, "value": "2026-06-24T13:02:09.090Z", "kind": "other", "label": "Updated", "source": "cvelistv5", "record": "CVE-2026-54639", "field": "cveMetadata.dateUpdated"}, {"timestamp": "2026-06-24T13:02:09.090Z", "date_only": false, "value": "2026-06-24T13:02:09.090Z", "kind": "other", "label": "Updated", "source": "cvelistv5 / CISA-ADP", "record": "CVE-2026-54639", "field": "containers.adp.0.providerMetadata.dateUpdated"}, {"timestamp": "2026-07-28T22:23:03Z", "date_only": false, "value": "2026-07-28T22:23:03Z", "kind": "milestone", "label": "Published", "source": "github \u00b7 GHSA-VJ5C-M527-MPFF", "record": "GHSA-VJ5C-M527-MPFF", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-07-28T22:23:03Z", "date_only": false, "value": "2026-07-28T22:23:03Z", "kind": "other", "label": "Updated", "source": "github \u00b7 GHSA-VJ5C-M527-MPFF", "record": "GHSA-VJ5C-M527-MPFF", "field": "modified"}, {"timestamp": "2026-07-29T02:31:53.724Z", "date_only": false, "value": "2026-07-29T02:31:53.724323Z", "kind": "sighting", "label": "Seen", "source": "https://gist.github.com/alon710/f56e7fea90184a0067b486a540ca3738", "record": "CVE-2026-54639", "field": "creation_timestamp", "uuid": "41c2ad9f-0f18-49f8-91e1-5a37382152ca", "content": "# CVE-2026-54639: CVE-2026-54639: Prototype Pollution and Patch Bypass in style-dictionary\n\n&gt; **CVSS Score:** 8.8\n&gt; **Published:** 2026-07-28\n&gt; **Full Report:** https://cvereports.com/reports/CVE-2026-54639\n\n## Summary\nA critical prototype pollution vulnerability (CVE-2026-54639) exists in style-dictionary versions 4.3.0 through 5.4.3 due to unsafe object traversal in the convertTokenData utility. Although a patch was released in version 5.4.4 targeting '__proto__', a complete bypass is possible using 'constructor.prototype', leading to persistent global prototype pollution and potential remote code execution.\n\n## TL;DR\nstyle-dictionary is vulnerable to prototype pollution via convertTokenData. An incomplete patch in v5.4.4 can be bypassed using constructor.prototype, allowing global runtime pollution.\n\n## Exploit Status: POC\n\n## Technical Details\n\n- **CWE ID**: CWE-1321\n- **Vulnerability Class**: Prototype Pollution\n- **CVSS v3.1 Score**: 8.8 (High)\n- **Attack Vector**: Local (escalatible to Remote)\n- **EPSS Score**: 0.00132 (3.12 percentile)\n- **Patch Status**: Incomplete (v5.4.4 bypass identified)\n- **CISA KEV Status**: Not listed\n\n## Affected Systems\n\n- style-dictionary NPM package\n- **style-dictionary**: &gt;= 4.3.0, &lt;= 5.4.3 (Fixed in: `5.4.4 (Incomplete fix)`)\n\n## Mitigation\n\n- Validate and sanitize all design token input keys before passing to the conversion function.\n- Override convertToTokenObject behavior or use Object.create(null) for dynamic dictionary construction.\n- Upgrade to a secure patched version once a complete remediation block is deployed.\n\n**Remediation Steps:**\n1. Identify applications utilizing style-dictionary's convertTokenData utility dynamically with user-controlled input.\n2. Deploy a custom input sanitizer regex pattern to block keys containing '__proto__', 'constructor', or 'prototype'.\n3. Refactor code to construct design token maps using secure JSON Schema validation.\n\n## References\n\n- [GHSA-vj5c-m527-mpff](https://github.com/style-dictionary/style-dictionary/security/advisories/GHSA-vj5c-m527-mpff)\n- [NVD - CVE-2026-54639](https://nvd.nist.gov/vuln/detail/CVE-2026-54639)\n\n\n---\n*Generated by [CVEReports](https://cvereports.com/reports/CVE-2026-54639) - Automated Vulnerability Intelligence*", "url": "https://gist.github.com/alon710/f56e7fea90184a0067b486a540ca3738"}, {"timestamp": "2026-08-13T17:41:17Z", "date_only": false, "value": "2026-08-13T17:41:17Z", "kind": "milestone", "label": "Published", "source": "osv_homebrew \u00b7 BREW-STYLE-DICTIONARY-CVE-2026-54639", "record": "BREW-STYLE-DICTIONARY-CVE-2026-54639", "field": "published", "metric_role": "disclosure", "metric_basis": "recorded_event"}, {"timestamp": "2026-10-18T08:51:57Z", "date_only": false, "value": "2026-10-18T08:51:57Z", "kind": "other", "label": "Updated", "source": "osv_homebrew \u00b7 BREW-STYLE-DICTIONARY-CVE-2026-54639", "record": "BREW-STYLE-DICTIONARY-CVE-2026-54639", "field": "modified"}, {"timestamp": "2026-10-25T23:10:00.167Z", "date_only": false, "value": "2026-10-25T23:10:00.167", "kind": "other", "label": "Updated", "source": "fkie_nvd \u00b7 FKIE_CVE-2026-54639", "record": "FKIE_CVE-2026-54639", "field": "lastModified"}], "metrics": {"as_of": "2026-10-28T12:32:27.055Z", "anchors": {"origin": {"timestamp": "2026-06-24T00:17:44.889Z", "date_only": false, "value": "2026-06-24T00:17:44.889Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-54639", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "discovery": null, "report": null, "acknowledgement": null, "disclosure": {"timestamp": "2026-06-24T00:17:44.889Z", "date_only": false, "value": "2026-06-24T00:17:44.889Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-54639", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "exploit_publication": null, "exploitation": null, "patch": null}, "vendor_response_time": {"available": false, "missing": ["start", "end"]}, "time_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit": {"available": false, "missing": ["end"]}, "disclosure_to_exploit_publication": {"available": false, "missing": ["end"]}, "time_to_patch": {"available": false, "missing": ["start", "end"]}, "total_time_to_patch": {"available": false, "missing": ["start", "end"]}, "disclosure_to_patch": {"available": false, "missing": ["end"]}, "time_unpatched": {"available": true, "seconds": 10930482.16603, "hours": 3036.245046119445, "days": 126.51021025497687, "min_seconds": 10930482.16603, "max_seconds": 10930482.16603, "approximate": false, "ongoing": true, "order_known": true, "batch_listing": false, "end_before_start": false, "start": {"timestamp": "2026-06-24T00:17:44.889Z", "date_only": false, "value": "2026-06-24T00:17:44.889Z", "kind": "milestone", "label": "Published", "source": "cvelistv5", "record": "CVE-2026-54639", "field": "cveMetadata.datePublished", "metric_role": "disclosure", "metric_basis": "recorded_event"}, "end": {"timestamp": "2026-10-28T12:32:27.055Z", "date_only": false, "label": "As of", "source": "Calculation clock"}}, "exploitation_to_patch": {"available": false, "missing": ["start"]}, "exploit_publication_to_patch": {"available": false, "missing": ["start"]}}}
