Malicious code in css-scroll-state-polyfill (npm)
Collected exploitation and prediction evidence
Risk source coverageCISA KEV is observed exploitation evidence. FIRST EPSS is a dated prediction of exploitation in the next 30 days. Missing scores are unknown. This collector requests predictions only for explicit CVE aliases in the public NuGet archive; Microsoft release views retain their existing prediction scope.
No collected risk observation for these identifiers. This does not establish absence of exploitation or a zero probability.
osv · MAL-2026-17486
Published--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (cffa0affc34bac3fa24fcc7c67aae4d120066f4f856cb8b637bc04c6ca9d482c) The package presents itself as a CSS polyfill but ships a payload file (thunderboltRegistry.js) that executes an IIFE at require time. The IIFE uses child_process to run host-identification commands (id, whoami, uname -a, ifconfig/ip addr, /etc/hosts, hostname) and collects Node version, platform, and PID, then sends the captured data via fetch to a hardcoded webhook.site collector at https://webhook.site/0492a36c-4d7b-408a-865c-226db25987ba. The main index.js is an empty stub; filenames mimic internal Wix Thunderbolt registry modules, consistent with a dependency-confusion squat targeting that namespace. A self-identifying 'beacon=poc15' tag is included in the request. The payload also walks require.cache and deletes any entry whose key contains 'thunderboltRegistry', causing subsequent requires in the same process to re-execute the recon-and-exfiltration path rather than return a cached export, and exports a Proxy that answers arbitrary method accesses to blend in with the impersonated registry.
- Source published
- 4 Oct 2026 23:15:41 UTC
- Source modified
- 4 Oct 2026 23:30:04 UTC
- Observed here
- 24 Oct 2026 13:17:17 UTC
- Source terms
- OSV · upstream source license applies
Original source record · Cite this exact observation · Complete original publisher JSON
This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · OSV · upstream source license applies. Source text is retained; field grouping and change labels are provided by ChangeIntel.