Malicious code in spf-analytics (npm)
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (8dece44c5ce884af66714dbff1f022e0345e860d0090cb7bcb30fd7b352cdd77) index.js is a heavily obfuscated browser script (obfuscator.io-style string-array + rotation) advertised for inclusion via unpkg on Shopify-style storefronts. At runtime it listens for the 'gokwik_events' window event and harvests customer name, phone, email, full address, city, state, country, pincode, cart line items, order total, and payment method. The captured PII is encrypted with a hardcoded RSA-OAEP public key wrapping an AES-GCM session key and POSTed to https://connector.internalwebhooks.com/spf-analytics, a destination the storefront operator did not configure. A localStorage key ('shopify_analytics_cache_7f4c91d8b2e64a0f9c37d5ab81e26f43') holds up to 500 fingerprints to suppress duplicate uploads, and a __spfAddressForwarderLoaded flag guards against double-loading. The endpoint URL, PEM key, event name, and field names are all indirected through the obfuscator string table, concealing the destination and captured fields from casual inspection of the CDN-served bundle. The package presents itself as 'analytics' but the relay is to a non-first-party endpoint hardcoded by the author, encrypted to prevent network inspection, and never disclosed to the operator embedding the script. ## Source: ghsa-malware (80bf3cd2f3401671c464f9ff2b58588e8f4c6b29cf36ad71e841e42abb706241) Any computer that has this package installed
- Products
- spf-analytics
- Affected versions
- 1.0.0
- Fixed versions
- Not specified
- CVEs
- Not specified
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 28 Oct 2026, 04:21 UTC · Revision 1
Source evidence
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (8dece44c5ce884af66714dbff1f022e0345e860d0090cb7bcb30fd7b352cdd77) index.js is a heavily obfuscated browser script (obfuscator.io-style string-array + rotation) advertised for inclusion via unpkg on Shopify-style storefronts. At runtime it listens for the 'gokwik_events' window event and harvests customer name, phone, email, full address, city, state, country, pincode, cart line items, order total, and payment method. The captured PII is encrypted with a hardcoded RSA-OAEP public key wrapping an AES-GCM session key and POSTed to https://connector.internalwebhooks.com/spf-analytics, a destination the storefront operator did not configure. A localStorage key ('shopify_analytics_cache_7f4c91d8b2e64a0f9c37d5ab81e26f43') holds up to 500 fingerprints to suppress duplicate uploads, and a __spfAddressForwarderLoaded flag guards against double-loading. The endpoint URL, PEM key, event name, and field names are all indirected through the obfuscator string table, concealing the destination and captured fields from casual inspection of the CDN-served bundle. The package presents itself as 'analytics' but the relay is to a non-first-party endpoint hardcoded by the author, encrypted to prevent network inspection, and never disclosed to the operator embedding the script. ## Source: ghsa-malware (80bf3cd2f3401671c464f9ff2b58588e8f4c6b29cf36ad71e841e42abb706241) Any computer that has this package installed
osv:MAL-2026-14486
spf-analytics
Fixed versions: Not specified
Complete source record
{
"id": "f07e7a8089a4ab159c91335086f5b8531a237389a0bb070b703740b3984f9af6",
"url": "https://osv.dev/vulnerability/MAL-2026-14486",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Malicious code in spf-analytics (npm)",
"summary": "--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (8dece44c5ce884af66714dbff1f022e0345e860d0090cb7bcb30fd7b352cdd77) index.js is a heavily obfuscated browser script (obfuscator.io-style string-array + rotation) advertised for inclusion via unpkg on Shopify-style storefronts. At runtime it listens for the 'gokwik_events' window event and harvests customer name, phone, email, full address, city, state, country, pincode, cart line items, order total, and payment method. The captured PII is encrypted with a hardcoded RSA-OAEP public key wrapping an AES-GCM session key and POSTed to https://connector.internalwebhooks.com/spf-analytics, a destination the storefront operator did not configure. A localStorage key ('shopify_analytics_cache_7f4c91d8b2e64a0f9c37d5ab81e26f43') holds up to 500 fingerprints to suppress duplicate uploads, and a __spfAddressForwarderLoaded flag guards against double-loading. The endpoint URL, PEM key, event name, and field names are all indirected through the obfuscator string table, concealing the destination and captured fields from casual inspection of the CDN-served bundle. The package presents itself as 'analytics' but the relay is to a non-first-party endpoint hardcoded by the author, encrypted to prevent network inspection, and never disclosed to the operator embedding the script. ## Source: ghsa-malware (80bf3cd2f3401671c464f9ff2b58588e8f4c6b29cf36ad71e841e42abb706241) Any computer that has this package installed",
"evidence": "osv:MAL-2026-14486",
"products": [
{
"name": {
"value": "spf-analytics",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "1.0.0",
"evidence": "/affected/0/versions"
}
]
}
],
"severity": "unknown",
"structured": {
"id": "MAL-2026-14486",
"aliases": [
"GHSA-fj97-8h42-crgr",
"MAL-2026-14486"
],
"affected": [
{
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "spf-analytics",
"purl": "pkg:npm/spf-analytics",
"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."
},
{
"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/spf-analytics/MAL-2026-14486.json",
"indicators": {
"evidence_files": [
{
"path": "index.js",
"tlsh": "aa923f41aec56ea113c34f2b7b57f1f0d21b499d368048cbc628bda52464737fba5a31",
"sha256": "dcaf41c676f03579a68b2526efd7df76f4576611784e6ad0ad80404191631595"
}
],
"package_integrity": [
{
"hashes": {
"sha1": "7026376523615fdb7bb2de3660f3b9419501c293",
"sha512_sri": "sha512-tC1oks+Kfscs6nr1xSa6ltmQLbGLbBodiERyepU0lYaFJdm3W6jnC+rxrfdHgkuvD5v+n2fFRpNKmLNrRGVU+A=="
},
"filename": "spf-analytics-1.0.0.tgz"
}
]
}
}
}
],
"modified": "2026-10-07T14:45:04.632625572Z",
"provider": "osv",
"references": [
"https://www.npmjs.com/package/spf-analytics/v/1.0.0",
"https://github.com/advisories/GHSA-fj97-8h42-crgr"
],
"provider_metadata": {
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-018732",
"sha256": "8dece44c5ce884af66714dbff1f022e0345e860d0090cb7bcb30fd7b352cdd77",
"source": "amazon-inspector",
"versions": [
"1.0.0"
],
"import_time": "2026-08-25T08:49:17.968010753Z",
"modified_time": "2026-08-25T08:30:04Z"
},
{
"id": "GHSA-fj97-8h42-crgr",
"ranges": [
{
"type": "SEMVER",
"events": [
{
"introduced": "0"
}
]
}
],
"sha256": "80bf3cd2f3401671c464f9ff2b58588e8f4c6b29cf36ad71e841e42abb706241",
"source": "ghsa-malware",
"import_time": "2026-10-07T14:29:05.949581509Z",
"modified_time": "2026-10-07T13:42:14Z"
}
]
}
},
"related_cves": [],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 95114,
"published_at": "2026-08-25T08:30:04+00:00"
}