Our analysis confirmed the behaviour described in the threat library entry. Do not install it. Read the analysis and indicators →
Also reported by malext.io, reddit.com
PERFORMANCE ZAP
Confirmed member of a tracked malicious supply-chain campaign.
Analysis record
- Analysed
- 5 days ago
- Version
- v7.4.3.87
- Artifact
- SHA256 EF2…92C
- Source
- Findings (non-IoC)
Is PERFORMANCE ZAP safe?
PERFORMANCE ZAP adds CRM features to WhatsApp Web. Its content scripts run inside WhatsApp pages, in files under content/assets/js/, and it talks to two outside services: app.wascript.com, which is the developer's own backend, and api.statsigcdn.com, a feature-flag service that switches features on and off remotely. The manifest data we reviewed lists no special permissions, which is unusual for something that injects scripts into WhatsApp and probably reflects how the file was read rather than what the extension asks for. A tool that shows customer history inside a chat has to load its interface into the page and stay in sync, so the fetch and socket.io calls found in those bundled files are the expected cost of that work.
The scanner's loudest alarm was a large block of base64 data in funnil/assets/js/9cf42769-2ad5-4714-8614-9a2b4c455349.CgnacD38.js. Base64 blocks appear in packaged JavaScript for ordinary reasons, most often inlined images, fonts or source maps, and nothing in that file points to a download or a command. The other flagged item, OBFUSCATION-FUNCTION_INDIRECT in one of the content bundles, is a pattern minifiers create when they replace direct calls with variable ones to save bytes. Everything else comes from rules that match almost any sizable JavaScript bundle.
The scanner also listed 414 indicators, and that number falls apart on inspection. Entries like color.border.accent.orange, border.radius.circle, btn.glass and calls.function.arguments.delta are styling names and object properties from library code, not addresses. The one domain worth knowing about is app.wascript.com, because that is where a chat CRM would send your data, and it belongs to the extension's own service rather than a third party. With no malware signatures, no hidden keys and no sign of password or cookie handling, the case against this extension is built from strings that were never network traffic. The base64 file is the only piece we could not read fully, and that is the one thing left open.
Evidence ledger
Ranked by severity · findings with a source location link to the code viewer
YARA Rule Matches
16 rules| Severity | Rule | Hits | Files | Metadata |
|---|---|---|---|---|
| LOW | credential env files | 30 | content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289163.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289106.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289208.js +27 more | - |
| LOW | postinstall persistence mechanism | 19 | content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289195.jscrm/assets/js/5e35787c-36b2-4a56-8ea4-4e0a75aa6943.D2Np3EBj.jsfluxo/assets/js/aacac57f-f9a2-4a7d-9569-51c193124758.BUttUo7e.js +16 more | - |
| LOW | ServerHostnameNotVerified | 1 | content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289.js | - |
| LOW | LocalStorageShouldNotBeUsed | 15 | fluxo/assets/js/aacac57f-f9a2-4a7d-9569-51c193124758.BUttUo7e.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28923.jsfluxo/assets/js/emoji-picker-react.esm.LrTXoimj.js +12 more | - |
| LOW | postinstall file download | 55 | crm/assets/js/2b070b0a-2c0f-4c9c-bb5b-938727270e32.CWg5n8f0.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d2895.jsfunnil/assets/js/770d23cd-9021-4aef-887e-d47811b5c322.B8_nURbH.js +52 more | - |
| LOW | NoUseEval | 1 | whatsapp/wpp/index.js | - |
| LOW | NoUseWeakRandom | 38 | crm/index.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28927.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d2895.js +35 more | - |
| LOW | SQLInjection | 1 | fluxo/index.js | - |
| LOW | postinstall environment access | 111 | content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289231.jscrm/assets/js/comp.BlkLCxO-.jsfunnil/assets/js/cd52f586-58a7-445a-a045-5f4032b22b71.qLgWFQJ-.js +108 more | - |
| LOW | postinstall network communication | 94 | content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28932.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28931.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28929.js +91 more | - |
| LOW | OriginsNotVerified | 5 | fluxo/index.jsfunnil/assets/js/770d23cd-9021-4aef-887e-d47811b5c322.B8_nURbH.jsfluxo/assets/js/b89d7b82-41f7-4061-9bc0-ae95ae5cd0a2.BLiJgZ4E.js +2 more | - |
| LOW | postinstall crypto operations | 44 | crm/assets/js/5e35787c-36b2-4a56-8ea4-4e0a75aa6943.D2Np3EBj.jsfunnil/index.js_metadata/verified_contents.json +41 more | - |
| LOW | postinstall system command | 77 | content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289257.jsfluxo/assets/js/createAudio.CLFqrCFJ.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28929.js +74 more | - |
| LOW | postinstall obfuscation | 83 | content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28929.jscrm/assets/js/index.B6c6aVcv.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289200.js +80 more | - |
| LOW | postinstall registry modification | 8 | crm/assets/js/b15575b9-e8eb-4d64-83b8-37d47f2b0b0a.BbRllemT.jscrm/assets/js/5e35787c-36b2-4a56-8ea4-4e0a75aa6943.D2Np3EBj.jsfluxo/assets/js/aacac57f-f9a2-4a7d-9569-51c193124758.BUttUo7e.js +5 more | - |
| LOW | postinstall file manipulation | 172 | content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289201.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289227.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289179.js +169 more | - |
Network Indicators
Concrete URLs, domains, IPs, emails, and hashes extracted from the analyzed artifact.
Loading network indicators
IoC detail rows are loaded outside the initial page render.
Publisher Evidence
Limited evidencePublisher identity, store signals, distribution reach, and warning signals used for context. Treat this as supporting evidence, not a clean bill of health.
Chrome does not expose the same publisher verification data as IDE stores, so this score is deliberately conservative.
11 evidence rows available.
Finding Categories
YARA Rules Matched
16 rules(754 hits)Requested Permissions
5 permissionsAI Security Report
AI Security Review
Evidence context: threat category none; evidence quality moderate.
PERFORMANCE ZAP describes itself as a CRM that adds features to WhatsApp Web, and the file layout matches that job. Everything of substance sits under content/assets/js/, where a script injected into a WhatsApp page would live, with background.js handling extension-level work. The network matches in that code are the ordinary vocabulary of a chat client. NET-SOCKET_IO-content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28912.js-15 and three sibling socket.io files open a live channel, NET-FETCH entries such as NET-FETCH-content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289137.js-1 and NET-FETCH-background.js-137 call fetch, and NET-JQUERY_AJAX-content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28923.js-1 uses jQuery's ajax helper. A CRM panel that shows contact history beside a chat needs a live connection and a way to pull records. None of these rules says where the data goes.
The indicator list does say something, and it does not survive reading. Among the endpoints we can inspect are color.border.accent.orange, border.radius.circle, btn.glass, calls.function.arguments.delta, above.sm, below.sm and artboard.phone. Those are CSS design tokens and object property paths, the exact strings a parser lifts out of a bundle and mistakes for hostnames. The genuine hosts are api.statsigcdn.com, a feature-flagging service used across the web, a group of atlassian.com and atlassian-isolated.net API hosts that travel with a bundled UI library, and app.wascript.com, which belongs to this extension's own service. Nothing points at a bank, a login page or a token endpoint.
There are no malware signatures and no secrets in the bundle. The 754 code-smell findings are the low-severity rules that fire on any file calling fetch or touching crypto, and they carry no weight on their own. Two obfuscation findings deserve a mention. OBFUSCATION-LARGE_BASE64-funnil/assets/js/9cf42769-2ad5-4714-8614-9a2b4c455349.CgnacD38.js-1 flags an embedded base64 block, the normal way a bundle carries inlined images, fonts or source maps. OBFUSCATION-FUNCTION_INDIRECT-content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289260.js-1 describes the indirection minifiers introduce when they rewrite direct calls to save bytes.
The strongest argument against this reading is the category itself. WhatsApp CRM extensions read a private messaging interface, so a hostile build could harvest contacts or chat history and ship them out. The publisher is only an email address and the extension has four users, so there is no reputation to lean on, and the base64 asset is the one item nobody has read end to end. Against that: no finding shows cookie, session or credential access, the manifest data we have lists no permissions or host permissions at all, and the only outside service named is the vendor's own backend. Nothing in the obfuscation findings sits next to a network call. What would settle it is decompiling funnil/assets/js/9cf42769-2ad5-4714-8614-9a2b4c455349.CgnacD38.js and confirming the base64 decodes to an image or font. The inflated total comes from bundled library code and strings that were never addresses, which is an artifact of automated extraction rather than anything this extension does.
Key Reasons
- Zero malware signatures, zero secrets and zero tool-poisoning findings across 1193 total findings.
- The 414 indicators are dominated by CSS design tokens and property paths such as color.border.accent.orange, btn.glass and calls.function.arguments.delta, which are not hostnames.
- Network findings are generic fetch, socket.io and jQuery ajax matches inside bundled content scripts, which is expected for a live CRM panel on WhatsApp Web.
- The 754 code-smell findings belong to the known low-severity noise class that fires on any file calling fetch or crypto.
- Both obfuscation findings fit ordinary packaging: an inlined base64 asset in funnil/assets/js and a minifier indirection pattern in a content chunk.
False Positive Considerations
- IoC extractor reading CSS design tokens and JavaScript property chains as domains
- 754 low-severity code-smell matches generated by bundled library code
- Generic fetch, socket.io and jQuery ajax pattern rules firing on any client-side bundle
- Base64 blob and indirect-call patterns that appear in normal minified bundles
Reviewed 2026-10-13; recommended action: monitor; model confidence 72%.
Chrome version history
Risk trend by version
17 analyzed versions. Each point is the latest successful scan for that version; failed zero-score scans are hidden. Dates are based on first seen by risky plugins.
Pick any point on the chart to explore that version's code below.
Source Code Not Available
Source code is not available for this version of the extension.
About This Extension
Frequently Asked Questions
Similar Extensions
Related extensions from the same publisher or marketplace
waSuper
[email protected]
Wa Elo IA
[email protected]
Whapro – Automação, CRM e Vendas no WhatsApp Web
[email protected]
Vende+
[email protected]
WaListall | O Melhor CRM para WhatsApp Web – Teste Grátis
[email protected]
InfiChat
[email protected]