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
Primeira Classe
Confirmed member of a tracked malicious supply-chain campaign.
Analysis record
- Analysed
- Today
- Version
- v7.4.3.87
- Artifact
- SHA256 5A4…A7A
- Source
- Findings (non-IoC)
Is Primeira Classe safe?
Primeira Classe is a Portuguese-language CRM that puts a control panel inside WhatsApp Web so you can tag chats, save quick replies and keep track of leads. The scan of its files recorded no browser permissions and no host permissions, so it does not ask Chrome for your cookies, downloads or browsing history. The network calls in the code are ordinary: fetch requests and a socket.io connection, with app.wascript.com as the vendor's own service and api.statsigcdn.com used for feature flags. Most of the other addresses on the list, such as above.sm, below.sm and border.radius.circle, are CSS values and JavaScript property names that were read as web addresses.
The entries that might look alarming are network matches in files like content/assets/js/v_7_4_3_86_085ff17f-7684-4a41-bfdd-8bd9d5293bb223.js, labelled NET-JQUERY_AJAX, and an OBFUSCATION-LARGE_BASE64 hit in funnil/assets/js/ed6113f2-bc09-4421-a453-bbbd66fe9488.DCssQ7AT.js. The first is jQuery's own Ajax helper bundled into a versioned chunk, which nearly every extension that talks to a server ships. The second is a base64 string inside a build file. If that string were a hidden payload, we would expect to see it decoded and executed somewhere in the extension, and no such code path was found.
The high number of entries here comes from volume, not from behaviour. 754 of them are code-quality notes, and 405 are strings harvested out of minified JavaScript, including fragments that are not addresses at all. Zero malware signatures matched. Nothing in the scan shows the extension reading credentials, touching cookies or contacting a service outside its own backend.
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 | postinstall file download | 55 | fluxo/assets/ttf/Segoeuibolditalic.chunk.ttfcontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28927.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28925.js +52 more | - |
| LOW | NoUseEval | 1 | whatsapp/wpp/index.js | - |
| LOW | NoUseWeakRandom | 38 | content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d2899.jsfunnil/index.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28925.js +35 more | - |
| LOW | SQLInjection | 1 | fluxo/index.js | - |
| LOW | credential env files | 30 | crm/assets/js/b15575b9-e8eb-4d64-83b8-37d47f2b0b0a.BbRllemT.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289240.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289114.js +27 more | - |
| LOW | postinstall persistence mechanism | 19 | fluxo/assets/js/aacac57f-f9a2-4a7d-9569-51c193124758.BUttUo7e.jscrm/assets/js/5e35787c-36b2-4a56-8ea4-4e0a75aa6943.D2Np3EBj.jsfluxo/assets/js/emoji-picker-react.esm.LrTXoimj.js +16 more | - |
| LOW | ServerHostnameNotVerified | 1 | content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289.js | - |
| LOW | LocalStorageShouldNotBeUsed | 15 | crm/assets/js/5e35787c-36b2-4a56-8ea4-4e0a75aa6943.D2Np3EBj.jsfunnil/assets/js/68038811-0075-484f-8b19-297df42f51e1.CVYXH02z.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28924.js +12 more | - |
| LOW | postinstall environment access | 111 | content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289188.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289174.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28914.js +108 more | - |
| LOW | postinstall network communication | 94 | whatsapp/wpp_module/index.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28923.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28989.js +91 more | - |
| LOW | OriginsNotVerified | 5 | fluxo/index.jsfluxo/assets/js/b89d7b82-41f7-4061-9bc0-ae95ae5cd0a2.BLiJgZ4E.jsfunnil/assets/js/770d23cd-9021-4aef-887e-d47811b5c322.B8_nURbH.js +2 more | - |
| LOW | postinstall crypto operations | 44 | crm/assets/js/index.DCTZnrKF.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28911.jsfunnil/assets/js/cd52f586-58a7-445a-a045-5f4032b22b71.qLgWFQJ-.js +41 more | - |
| LOW | postinstall system command | 77 | fluxo/assets/js/createAudio.CLFqrCFJ.jsfunnil/assets/css/style.csscrm/assets/js/b3c3d2a2-f432-4ecd-a3f4-0b4582cc4a6c.B8_nURbH.js +74 more | - |
| LOW | postinstall obfuscation | 83 | content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289167.jscrm/assets/js/b3c3d2a2-f432-4ecd-a3f4-0b4582cc4a6c.B8_nURbH.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289261.js +80 more | - |
| LOW | postinstall registry modification | 8 | content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289149.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289260.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289175.js +5 more | - |
| LOW | postinstall file manipulation | 172 | fluxo/assets/js/index.DWsmud50.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28918.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289219.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.
Primeira Classe is a WhatsApp Web CRM that adds chat organisation and message automation to web.whatsapp.com. The scan returned 1,184 findings and none of them are malware: malware-signature 0, malware 0, secret 0, dependency 0, tool-poisoning 0. What is left is 754 code-smell entries, 405 IoCs, 22 network matches, 2 obfuscation matches and a single manifest-analysis item.
The network findings describe bundled libraries, not custom data channels. Titles such as NET-JQUERY_AJAX-content/assets/js/v_7_4_3_86_085ff17f-7684-4a41-bfdd-8bd9d5293bb223.js-13 and NET-SOCKET_IO-content/assets/js/v_7_4_3_86_085ff17f-7684-4a41-bfdd-8bd9d5293bb212.js-15 are jQuery's Ajax helper and the socket.io client inside versioned build chunks. A CRM that syncs contacts and message templates needs a websocket and HTTP calls, so this is expected surface rather than evidence of intent. The endpoint list supports that reading: app.wascript.com is the vendor's own service and api.statsigcdn.com is a feature-flag CDN. The rest of the list, including above.sm, below.sm, border.radius.circle, btn.glass and calls.function.arguments.delta, is CSS values and JavaScript property chains that the extractor read as hostnames. Those strings cannot resolve to anything.
The two obfuscation hits sit inside build artifacts. OBFUSCATION-LARGE_BASE64 fires on funnil/assets/js/ed6113f2-bc09-4421-a453-bbbd66fe9488.DCssQ7AT.js, and OBFUSCATION-FUNCTION_INDIRECT fires on content/assets/js/v_7_4_3_86_085ff17f-7684-4a41-bfdd-8bd9d5293bb2259.js. A base64 blob in a hashed bundle is common for embedded fonts, icons or small assets, and indirect function calls are a standard minifier output. Neither file carries a malware signature, and no credential, cookie or storage API use was flagged anywhere in the extension.
A sceptic has a fair case. A content script running on WhatsApp Web can read every message the user has open, the publisher is a bare email address ([email protected]) with no company behind the listing, the user base is 10, and a large base64 blob is exactly where a loader would hide a payload. That argument points at capability, and capability is not behaviour. The scanned files show no code path from that blob to eval, no calls to chrome.cookies or chrome.storage, and no destination outside the vendor's own backend and a statsig CDN. Two things would settle it: the decoded contents of ed6113f2-bc09-4421-a453-bbbd66fe9488.DCssQ7AT.js, and the content_scripts match patterns in the manifest, since nothing in this scan records the permissions the extension actually requests. Neither gap changes what the current evidence shows.
Zero malware signatures, zero credential-access findings, zero suspicious third-party destinations. The finding count is high because 754 code-quality notes and 405 harvested strings were counted, and because each bundled library produced its own matches in every chunk file.
Key Reasons
- Zero malware, malware-signature, secret, dependency and tool-poisoning matches across 1,184 findings.
- All 22 network findings are bundled library patterns (NET-JQUERY_AJAX, NET-SOCKET_IO, NET-FETCH) inside hashed versioned chunk files, consistent with a CRM syncing to its own backend.
- Only app.wascript.com and api.statsigcdn.com look like real destinations; entries such as border.radius.circle, btn.glass and above.sm are CSS values and property chains misread as domains.
- Both obfuscation hits (OBFUSCATION-LARGE_BASE64 in funnil/assets/js/ed6113f2-bc09-4421-a453-bbbd66fe9488.DCssQ7AT.js and OBFUSCATION-FUNCTION_INDIRECT in content/assets/js/v_7_4_3_86_085ff17f-7684-4a41-bfdd-8bd9d5293bb2259.js) sit in minified build artifacts and are not colocated with any signature.
- No impersonation signal: the name Primeira Classe and the store listing do not copy a known extension.
False Positive Considerations
- IoC extraction from minified JavaScript: CSS values and property chains parsed as hostnames (border.radius.circle, btn.glass, above.sm, below.sm)
- 754 code-smell findings generated by bundling standard JavaScript libraries
- Bundled jQuery and socket.io client triggering network rules in every chunk file
- Base64 strings and minifier function indirection flagged as obfuscation in build output
Reviewed 2026-10-10; recommended action: suppress false positive; model confidence 70%.
Chrome version history
Risk trend by version
15 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]