{"id":"MAL-2026-17551","revision":"7ad8ae9f0af645bfb2eaa2f5d3ae0675","records":[{"revision":"7ad8ae9f0af645bfb2eaa2f5d3ae0675","observedAt":"2026-10-24T13:17:17.793+00:00","statement":{"source":"osv","id":"MAL-2026-17551","aliases":[],"title":"Malicious code in css-gvqmfn-polyfill (npm)","description":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (ffb3f332a818748252e49dcf21ffb6949c531afd401ee697cc08ba00a067ae30)\ncss-gvqmfn-polyfill mimics Wix internal @wix/thunderbolt-* CSS polyfill naming and ships a Proxy-based cover stub that re-exports registry names (thunderboltRegistry, siteAssetsRegistry, editorRegistry, corvidRegistry, etc.) as no-op functions to appear functional. On require of thunderboltRegistry.js, an IIFE unconditionally executes `id`, `whoami`, `uname -a`, `ifconfig`/`ip addr`, and `cat /etc/hosts` via child_process, collects os.hostname, Node version, platform, and pid, and sends the output together with an `rce-poc` beacon to the hardcoded attacker endpoint http://dxpoc.gt.tc/callback.php/bb8968d0f67000433bf7005dd5ad2d1f over plain HTTP. The accompanying registry-manifest.min.json points sibling registries to parastorage.com URLs that do not host this file, consistent with a dependency-confusion lure targeting Wix build environments.\n","state":0,"publishedAt":"2026-10-05T03:36:27+00:00","modifiedAt":"2026-10-05T04:15:05.2031675+00:00","affected":[{"ecosystem":"npm","name":"css-gvqmfn-polyfill","ranges":[],"versions":["1.0.0"],"rawVersionEvidence":null}],"metrics":[],"references":["https://www.npmjs.com/package/css-gvqmfn-polyfill/v/1.0.0"],"sourceUrl":"https://osv.dev/vulnerability/MAL-2026-17551","license":"OSV · upstream source license applies","key":"osv:MAL-2026-17551","identifiers":["MAL-2026-17551"]},"retained":false,"historicalAffected":[]}],"coverage":[]}