Skip to content
Heist/ feed
Unrated

Malicious code in css-at-scope-polyfill (npm)

Type: advisorySource: OSV1 source record

--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (c4d8d974b7fabf04fa662971cd8041fb76775bf5ed2902cbbffed0f881e2036d) Package is published under a CSS-polyfill name but ships thunderboltRegistry.js, which exports Wix internal registry module names (thunderboltRegistry, siteAssetsRegistry, editorRegistry, corvidRegistry, etc.) so that a build resolving any of those names will load this file. On require(), an IIFE runs child_process.execSync to collect `id`, `whoami`, `uname`, `ifconfig`/`ip addr`, and the contents of /etc/hosts, plus a beacon containing node version, platform, pid, and hostname, and POSTs the output via fetch to the hardcoded HTTP endpoint http://dxpoc.gt.tc/callback.php/bb8968d0f67000433bf7005dd5ad2d1f. The payload clears any require.cache entries referencing 'thunderboltRegistry' and acquires child_process through three fallbacks, including instantiating a new Module via module.constructor to bypass mocks or sandboxes. The declared CSS-polyfill purpose has no relation to this behavior; the shape is a dependency-confusion squat against internal Wix modules.

Announced Source revision 1
Original source ↗

MAL-2026-17547

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: osv:MAL-2026-17547

css-at-scope-polyfill

Source reference: /affected/0/package/name

Affected versions
1.0.0

Source reference: /affected/0/versions

Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "package": {
      "name": "css-at-scope-polyfill",
      "purl": "pkg:npm/css-at-scope-polyfill",
      "ecosystem": "npm"
    },
    "versions": [
      "1.0.0"
    ],
    "database_specific": {
      "cwes": [
        {
          "name": "Embedded Malicious Code",
          "cweId": "CWE-506",
          "description": "The product contains code that appears to be malicious in nature."
        }
      ],
      "source": "https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/css-at-scope-polyfill/MAL-2026-17547.json",
      "indicators": {
        "evidence_files": [
          {
            "path": "thunderboltRegistry.js",
            "tlsh": "e87154a5b99df02065c33438cb7f4049b4bbc6672d6caee0744899b01f7985c01be6f8",
            "sha256": "a485cb48081ea590cab385a405886cfe6f30af7d415f30bc8d7937ace461b928"
          }
        ],
        "package_integrity": [
          {
            "hashes": {
              "sha1": "5e679fcafebeb0bafea3ce347f5925a124661831",
              "sha512_sri": "sha512-gJRIBJ4jedfAMCc6/qOOoDOgtnSKR459y9B9QJKzPAUVDoAEhaFopx46jHmwCKBpXSeiKwodBEKGry8zkiyy4A=="
            },
            "filename": "css-at-scope-polyfill-1.0.0.tgz"
          }
        ]
      }
    }
  }
]

Publisher severity

No explicit severity was provided.

Event
#83608 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement