ghsa-cvw4-c69g-7v7m
Vulnerability from github
Note
On Thursday, June 27, 2024, Cloudflare and Namecheap intervened at a domain level to ensure polyfill.io
and its subdomains could not resolve to the compromised service, rendering this vulnerability unexploitable.
The following sections describe this vulnerability prior to the domain level intervention, when it was still exploitable.
Impact
fides.js
, a client-side script used to interact with the consent management features of Fides, used the polyfill.io
domain in a very limited edge case, when it detected a legacy browser such as IE11 that did not support the fetch standard.
On June 25th, 2024, Sansec published the following regarding the polyfill.io
domain.
The polyfill.js is a popular open source library to support older browsers. 100K+ sites embed it using the cdn.polyfill.io domain... However, in February this year, a Chinese company bought the domain and the Github account. Since then, this domain was caught injecting malware on mobile devices via any site that embeds cdn.polyfill.io.
Therefore it was possible for users of legacy, pre-2017 browsers who navigate to a page serving fides.js
to download and execute malicious scripts from the compromised domain.
No exploitation of fides.js
via polyfill.io
has been identified at this time, but other script developers who use https://cdn.polyfill.io/v2/polyfill.min.js
have reported redirects to malicious websites.
Patches
The vulnerability has been patched in Fides version 2.39.1
. Users are advised to upgrade to this version or later to secure their systems against this threat.
Workarounds
Prior to the domain level intervention, there were no server-side workarounds and the confidentiality, integrity, and availability impacts of this vulnerability were high.
Clients could ensure they were not affected by using a modern browser that supported the fetch standard. caniuse.com/fetch estimates that 97.52% of browser users use a browser that supports the fetch standard.
References
- https://sansec.io/research/polyfill-supply-chain-attack
- https://github.com/ethyca/fides/pull/5026/
- https://fetch.spec.whatwg.org/
{ "affected": [ { "package": { "ecosystem": "PyPI", "name": "ethyca-fides" }, "ranges": [ { "events": [ { "introduced": "0" }, { "fixed": "2.39.1" } ], "type": "ECOSYSTEM" } ] } ], "aliases": [ "CVE-2024-38537" ], "database_specific": { "cwe_ids": [ "CWE-829" ], "github_reviewed": true, "github_reviewed_at": "2024-07-02T21:20:07Z", "nvd_published_at": "2024-07-02T20:15:05Z", "severity": "LOW" }, "details": "### Note\n\nOn Thursday, June 27, 2024, Cloudflare and Namecheap intervened at a domain level to ensure `polyfill.io` and its subdomains could not resolve to the compromised service, rendering this vulnerability **unexploitable**.\n\nThe following sections describe this vulnerability prior to the domain level intervention, when it was still exploitable.\n\n### Impact\n\n`fides.js`, a client-side script used to interact with the consent management features of Fides, used the `polyfill.io` domain in a very limited edge case, when it detected a legacy browser such as IE11 that did not support the fetch standard.\n\nOn June 25th, 2024, Sansec published the following regarding the `polyfill.io` domain.\n\n\u003e The polyfill.js is a popular open source library to support older browsers. 100K+ sites embed it using the cdn.polyfill.io domain... However, in February this year, a Chinese company bought the domain and the Github account. Since then, this domain was caught injecting malware on mobile devices via any site that embeds cdn.polyfill.io.\n\nTherefore it was possible for users of legacy, pre-2017 browsers who navigate to a page serving `fides.js` to download and execute malicious scripts from the compromised domain.\n\nNo exploitation of `fides.js` via `polyfill.io` has been identified at this time, but other script developers who use `https://cdn.polyfill.io/v2/polyfill.min.js` have reported redirects to malicious websites.\n\n### Patches\nThe vulnerability has been patched in Fides version `2.39.1`. Users are advised to upgrade to this version or later to secure their systems against this threat.\n\n### Workarounds\n\nPrior to the domain level intervention, there were no server-side workarounds and the confidentiality, integrity, and availability impacts of this vulnerability were high. \n\nClients could ensure they were not affected by using a modern browser that supported the fetch standard. caniuse.com/fetch estimates that 97.52% of browser users use a browser that supports the fetch standard.\n\n### References\n- https://sansec.io/research/polyfill-supply-chain-attack\n- https://github.com/ethyca/fides/pull/5026/\n- https://fetch.spec.whatwg.org/", "id": "GHSA-cvw4-c69g-7v7m", "modified": "2024-07-05T21:27:24Z", "published": "2024-07-02T21:20:07Z", "references": [ { "type": "WEB", "url": "https://github.com/ethyca/fides/security/advisories/GHSA-cvw4-c69g-7v7m" }, { "type": "ADVISORY", "url": "https://nvd.nist.gov/vuln/detail/CVE-2024-38537" }, { "type": "WEB", "url": "https://github.com/ethyca/fides/pull/5026" }, { "type": "WEB", "url": "https://github.com/ethyca/fides/commit/868c4d629760572192bd61db34f5a4458ed12005" }, { "type": "WEB", "url": "https://fetch.spec.whatwg.org" }, { "type": "PACKAGE", "url": "https://github.com/ethyca/fides" }, { "type": "WEB", "url": "https://sansec.io/research/polyfill-supply-chain-attack" } ], "schema_version": "1.4.0", "severity": [ { "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:N", "type": "CVSS_V3" } ], "summary": "Inclusion of Untrusted polyfill.io Code Vulnerability in fides.js" }
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.