{"answers":{"affected":"1 open source package ship an affected version, including css-a11y-contrast-utils.","exploited":"There is no known exploitation of MAL-2026-17475 in the wild and no public exploit code.","fix":"Remove the package from your dependencies and lockfiles, then rotate any secrets on machines where it was installed.","what":"MAL-2026-17475 is a malicious package in css-a11y-contrast-utils, published on 4 Oct 2026."},"fix_prompt":"MAL-2026-17475 is a malicious package: css-a11y-contrast-utils (npm). Every version was published to cause harm.\n\nTask:\n1. Search this repository's dependency manifests and lockfiles for the package, including transitive dependencies.\n2. If it is present, remove it, regenerate the lockfile with the project's package manager, and replace whatever it was used for.\n3. List any CI runners, developer machines or containers that installed it, so their secrets can be rotated.\n4. If the package is not used anywhere, say so and change nothing.\n\nReference: https://insights.sbomify.com/MAL-2026-17475/ (Markdown: https://insights.sbomify.com/MAL-2026-17475/index.md)","id":"MAL-2026-17475","markdown":"https://insights.sbomify.com/MAL-2026-17475/index.md","name":"MAL-2026-17475","record":{"aliases":[],"analysis":null,"analysis_generated_by":null,"assigner":null,"cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"description":"css-a11y-contrast-utils@1.0.0 is advertised as a WCAG contrast utility but ships no contrast code — index.js exports an empty object. The package instead defines a Proxy stub exposing identifiers from Wix's internal Thunderbolt registry namespace (thunderboltRegistry, siteAssetsRegistry, editorRegistry, corvidRegistry, etc.), and its manifest points at static.parastorage.com/unpkg/css-a11y-contrast-utils, consistent with a dependency-confusion squat targeting a private Wix registry. On module load, thunderboltRegistry.js runs an IIFE that executes `hostname`, `id`, and `uname -r` via child_process and exfiltrates the collected host, uid, kernel version, Node version, and pid by (a) issuing DNS lookups to subdomains of the hardcoded OAST collector davdpb8lhot13kgmnhp0863x9g83mpswq.oast.live and (b) HTTP GET to the hardcoded webhook https://webhook.site/0492a36c-4d7b-408a-865c-226db25987ba. The cover-story metadata plus internal-registry naming plus the on-load recon beacon make the entire purpose of the package a dependency-confusion payload against installers that resolve any of these registry names.","ecosystems":["npm"],"exploits":{"exploitdb":null,"first_seen":null,"github_poc":null,"max_poc_stars":null,"metasploit":null,"nuclei":null,"refs":[],"tier":null},"has_fix":false,"headline":"Malicious code in css-a11y-contrast-utils (npm)","id":"MAL-2026-17475","indexable":true,"kev":null,"kind":"malicious","links":{"ecosystem":"npm","product":null,"products":[],"type":null,"year":"2026"},"n_packages":1,"n_references":null,"packages":[{"ecosystem":"npm","fixed":[],"introduced":[],"last_affected":[],"package":"css-a11y-contrast-utils","purl":"pkg:npm/css-a11y-contrast-utils","source":"MAL-2026-17475"}],"products":null,"published":"2026-10-04","related":[],"sources":[{"class":"attribution","licence":"Apache-2.0","name":"OpenSSF Malicious Packages","prefix":"MAL"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":null,"updated":null,"vendors":null},"summary":null,"url":"https://insights.sbomify.com/MAL-2026-17475/"}