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
guruwa
Confirmed member of a tracked malicious supply-chain campaign.
Analysis record
- Analysed
- Today
- Version
- v7.4.3.89
- Artifact
- SHA256 86E…E2E
- Source
- Findings (non-IoC)
Is guruwa safe?
guruwa layers a customer-relationship tool over WhatsApp Web, which means it lives inside your chat window and reads what passes through it. The manifest declares no special permissions and no host permissions, so it cannot touch cookies, downloads or other tabs on its own; content scripts give it its view of the WhatsApp page. Traffic leaves through fetch and socket.io calls spread across the content/assets/js/ files, with app.wascript.com carrying the product's own data and api.statsigcdn.com serving feature flags. Most of the other listed endpoints, including above.sm, btn.glass and color.border.accent.orange, look like CSS tokens and minified property chains that the domain extractor misread as hostnames.
Two obfuscation flags need explaining, and neither points at hidden logic. OBFUSCATION-LARGE_BASE64 sits in funnil/assets/js/9cf42769-2ad5-4714-8614-9a2b4c455349.CgnacD38.js, a hashed build file where a base64 blob usually holds an image, a font or an embedded library. OBFUSCATION-FUNCTION_INDIRECT in content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289260.js marks indirect function calls, a shape every minifier emits. A NET-FETCH hit in background.js records that a network call happens and says nothing about where it goes.
The rest of the volume comes from the scanner tripping over bundled JavaScript. Hundreds of low-severity code-smell matches and hundreds of indicator hits pile up inside minified vendor files, and on this extension none of them pair with a malware signature. Zero signature matches across the whole package. A WhatsApp CRM stitched together from a socket library, jQuery and an analytics SDK would produce exactly this pile, and the endpoints that remain all fit the job of running a shared WhatsApp inbox. What would change the picture: a signature match, a request carrying chat text to a host outside the product, or any code reaching a login page.
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 | 56 | funnil/assets/ttf/Segoeuibold.chunk.ttffunnil/assets/js/4884f29f-beb9-400d-a366-ee179f979512.DGR8brSg.jscrm/assets/ttf/Segoeui.chunk.ttf +53 more | - |
| LOW | NoUseEval | 1 | whatsapp/wpp/index.js | - |
| LOW | NoUseWeakRandom | 38 | content/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe264.jscrm/assets/js/004fed15-8877-43f0-8efb-694b1f83470a.DHS87NkU.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe9.js +35 more | - |
| LOW | SQLInjection | 1 | fluxo/index.js | - |
| LOW | ServerHostnameNotVerified | 1 | content/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe.js | - |
| LOW | LocalStorageShouldNotBeUsed | 15 | fluxo/assets/js/4ee11da8-398e-42c1-a7a6-562435dd4099.Ltqe_vjw.jswhatsapp/wpp/index.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe27.js +12 more | - |
| LOW | postinstall environment access | 111 | crm/assets/js/index.DBht7XSi.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe107.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe261.js +108 more | - |
| LOW | postinstall network communication | 93 | content/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe84.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe162.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe170.js +90 more | - |
| LOW | OriginsNotVerified | 5 | funnil/assets/js/ac7c4918-d573-4107-aa70-4001c8f5324c.B8_nURbH.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe6.jsfluxo/assets/js/dacb7d41-b2cc-4fc5-b0cb-217764ce9fc7.D3Llan5p.js +2 more | - |
| LOW | postinstall system command | 77 | fluxo/assets/js/createAudio.vStFQ0DV.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe99.jsfunnil/assets/js/abbe0a9b-5062-4808-8e5c-ed00bfd273cc.DSPJIgZP.js +74 more | - |
| LOW | postinstall crypto operations | 44 | fluxo/assets/js/modal.CtHWIk2G.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe44.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe137.js +41 more | - |
| LOW | postinstall obfuscation | 83 | crm/assets/js/index.Cf4NYfzy.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe170.jsfunnil/assets/js/abbe0a9b-5062-4808-8e5c-ed00bfd273cc.DSPJIgZP.js +80 more | - |
| LOW | postinstall registry modification | 8 | crm/assets/js/08720d6a-0be0-46e1-9843-98b7db20fc19.BMVVV2Gw.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe152.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe264.js +5 more | - |
| LOW | postinstall file manipulation | 172 | content/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe201.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe236.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe23.js +169 more | - |
| LOW | credential env files | 30 | content/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe242.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe220.jscontent/assets/js/v_7_4_3_89_6a967488-454e-474e-a8c0-67247cae29fe178.js +27 more | - |
| LOW | postinstall persistence mechanism | 19 | crm/assets/css/style.cssfluxo/assets/js/dacb7d41-b2cc-4fc5-b0cb-217764ce9fc7.D3Llan5p.jsfunnil/assets/css/style.css +16 more | - |
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.
What the code does
guruwa bills itself as a CRM for WhatsApp Web, and the file layout matches that job. Content scripts under content/assets/js/ run on the WhatsApp page, hold chat state, and move data to and from a backend. background.js:137 carries a NET-FETCH finding, and the NET-SOCKET_IO hits at content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28912.js:15 and content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289149.js:64 point at a persistent socket connection, which is how a CRM keeps an inbox in sync without polling. The manifest declares no permissions and no host permissions, so the extension holds no cookie access, no downloads access, and no reach into other tabs.
The network picture
The endpoint list mixes three things. app.wascript.com belongs to the product, and api.statsigcdn.com serves feature flags, a normal SaaS dependency. api.atlassian.com and api.atlassian-us-gov-mod.com arrived with a bundled library. The rest of the list is extractor noise: above.sm, below.sm, btn.glass, border.radius.circle, color.border.accent.orange and calls.function.arguments.delta are CSS design tokens and minified property chains, not hosts. That pattern explains the 410 indicator hits as well.
Obfuscation findings
Two medium obfuscation flags deserve a look. OBFUSCATION-LARGE_BASE64 in funnil/assets/js/9cf42769-2ad5-4714-8614-9a2b4c455349.CgnacD38.js marks a base64 blob inside a hashed build artifact; bundled images, fonts and vendor bundles produce this constantly. OBFUSCATION-FUNCTION_INDIRECT in content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289260.js marks indirect calls, which a minifier emits. Neither flag sits next to a malware signature, and the co-location rule is the one that matters.
The counterargument
A skeptic would point at the raw numbers: 1,189 findings, 22 network hits, 410 indicators, and a directory named funnil holding a random-looking filename. On a dashboard that looks alarming. It falls apart on inspection. Malware signature count is zero. Of the 1,189, some 754 are code-smell matches of the kind that fire on any non-trivial JavaScript, and 410 are indicator hits dominated by strings the extractor read as domains. Nothing here reaches a login page, harvests cookies, or connects anywhere unrelated to running a WhatsApp inbox. The extension does read chat content, and anyone weighing the install should know that, because that access is the product. Reading chats is the whole point of a CRM for WhatsApp Web.
What would change this
A malware signature in the same file as the base64 blob, a request sending message bodies somewhere other than the product backend, or a socket connection to a host outside app.wascript.com and its analytics. None of those appear in this bundle.
Key Reasons
- Zero malware signatures and zero malware findings across 1,189 total findings
- Network findings (NET-FETCH in background.js:137, NET-SOCKET_IO in content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28912.js:15) match a chat sync backend, not exfiltration
- Most listed endpoints are extractor artifacts, such as color.border.accent.orange and calls.function.arguments.delta, which are CSS tokens and minified property chains
- The remaining third-party endpoints, api.statsigcdn.com and api.atlassian.com, belong to bundled libraries and analytics
- Manifest declares no permissions and no host permissions for an extension that only operates on the WhatsApp Web page
False Positive Considerations
- 754 low-severity code-smell matches firing on minified and bundled JavaScript
- 410 IoC hits dominated by CSS design tokens and minified property chains misread as domains
- LARGE_BASE64 obfuscation flag on a hashed build asset that likely holds an image or font
- Bundled vendor library artifacts pulling in unrelated third-party endpoints such as api.atlassian.com
Reviewed 2026-10-10; recommended action: suppress false positive; model confidence 72%.
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]