Flagged in the threat library: WaSteal

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

Chrome Web Store Verified

Ninja Ads

by [email protected] · 24 users
1e5b4037-6148-5d33-9a9d-0243c910f567 | v7.4.3.87
65/ 100
MEDIUM risk
No change since v7.4.3.85
Threat verdict
Do not install

Confirmed member of a tracked malicious supply-chain campaign.

Analysis record

Analysed
1 weeks ago
Version
v7.4.3.87
Artifact
SHA256 5E6…A73
Source
Findings (non-IoC)

Is Ninja Ads safe?

Ninja Ads is a Chrome extension that organizes your WhatsApp Web chats and contacts, sold as a CRM. The manifest data we could read shows no special permissions and no host permissions, which is odd for something that runs inside WhatsApp Web, so the scan did not capture where its content scripts are allowed to run. Its network list does name two services: app.wascript.com, which fits the vendor's own backend for chat features, and api.statsigcdn.com, Statsig's feature-flag CDN, a service many apps use to switch features on and off.

Nearly all of the flagged issues come from that chat code. Findings such as NET-SOCKET_IO in content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28912.js and NET-FETCH in background.js:137 record that the extension opens a live connection and makes web requests, which is what a CRM does to sync conversations. The OBFUSCATION-LARGE_BASE64 finding in funnil/assets/js/9cf42769-2ad5-4714-8614-9a2b4c455349.CgnacD38.js points to a block of base64 data inside a hashed asset file, the sort of thing produced when a font, icon or worker is packed into a bundle.

The scanner also tripped on its own matching. Many listed domains are not hosts at all: border.radius.circle, btn.glass and calls.function.arguments.delta are CSS values and JavaScript property paths that a domain regex read as addresses. No malware signature matched anywhere in the extension, and no secrets or credential-handling code turned up. The honest caveat is that the permission list was missing from the data, so we cannot confirm exactly which parts of WhatsApp it can read.

Evidence ledger

Ranked by severity · findings with a source location link to the code viewer

779 detail rows

YARA Rule Matches

16 rules
SeverityRuleHitsFilesMetadata
LOWcredential env files 30
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289195.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289145.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289208.js +27 more
-
LOWpostinstall persistence mechanism 19
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289128.jsfluxo/assets/css/style.csscrm/assets/js/22224ae4-c9a0-456b-97d3-6f47a43e6f69.cO50aLre.js +16 more
-
LOWpostinstall file download 55
funnil/assets/ttf/Segoeui.chunk.ttffluxo/assets/ttf/Segoeuibolditalic.chunk.ttfcontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28939.js +52 more
-
LOWNoUseEval 1
whatsapp/wpp/index.js
-
LOWNoUseWeakRandom 38
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d2894.jscrm/assets/js/22224ae4-c9a0-456b-97d3-6f47a43e6f69.cO50aLre.jscrm/assets/js/b3c3d2a2-f432-4ecd-a3f4-0b4582cc4a6c.B8_nURbH.js +35 more
-
LOWSQLInjection 1
fluxo/index.js
-
LOWServerHostnameNotVerified 1
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289.js
-
LOWLocalStorageShouldNotBeUsed 15
whatsapp/wpp/index.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-3a9d8748d28952.js +12 more
-
LOWpostinstall environment access 111
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289225.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289171.jsfunnil/assets/js/comp.D8MS4w5d.js +108 more
-
LOWpostinstall network communication 94
fluxo/assets/js/emoji-picker-react.esm.LrTXoimj.jscrm/assets/js/3ff8e0d1-c573-49eb-9f68-f24fefab50be.BrQ7hbtC.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289109.js +91 more
-
LOWOriginsNotVerified 5
fluxo/index.jsfluxo/assets/js/b89d7b82-41f7-4061-9bc0-ae95ae5cd0a2.BLiJgZ4E.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d2896.js +2 more
-
LOWpostinstall crypto operations 44
funnil/assets/js/cd52f586-58a7-445a-a045-5f4032b22b71.qLgWFQJ-.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289125.jswhatsapp/wpp/index.js +41 more
-
LOWpostinstall system command 77
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28924.jscrm/assets/js/index.DCTZnrKF.jsfunnil/index.js +74 more
-
LOWpostinstall obfuscation 83
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289167.jsfunnil/index.jscrm/assets/js/5e35787c-36b2-4a56-8ea4-4e0a75aa6943.D2Np3EBj.js +80 more
-
LOWpostinstall registry modification 8
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289175.jsfluxo/assets/js/aacac57f-f9a2-4a7d-9569-51c193124758.BUttUo7e.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289260.js +5 more
-
LOWpostinstall file manipulation 172
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289222.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289213.jscrm/assets/js/index.C3nosisq.js +169 more
-

Publisher Evidence

Limited evidence

[email protected]

Publisher 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.

51
Noisy-finding weight
x1.00
Publisher domain
extensao.store
Observed
Store verification signal
Limited signal
Limited
Extension portfolio
174
Portfolio

11 evidence rows available.

Finding Categories

2
Obfuscation
22
Network
406
IoC Indicators

YARA Rules Matched

16 rules(754 hits)
credential env files postinstall persistence mechanism postinstall file download NoUseEval NoUseWeakRandom SQLInjection ServerHostnameNotVerified LocalStorageShouldNotBeUsed postinstall environment access postinstall network communication OriginsNotVerified postinstall crypto operations postinstall system command postinstall obfuscation postinstall registry modification postinstall file manipulation

Requested Permissions

5 permissions
tabs
Medium
unlimitedStorage
Low
storage
Low
alarms
Low
https://web.whatsapp.com/*
Low

AI Security Report

AI Security Review

Evidence context: threat category none; evidence quality moderate.

Ninja Ads bills itself as a CRM for WhatsApp Web, and version 7.4.3.87 with 24 users suggests a small project published by [email protected], a contact address rather than a company name. The first thing to note is a gap: the manifest data shows no host permissions and no API permissions. A content script that reorganizes WhatsApp chats has to be allowed to run on web.whatsapp.com, so that list went uncaptured rather than being genuinely empty.

The 22 network findings record connector use rather than destinations. They fire on content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28923.js (NET-JQUERY_AJAX), content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28912.js and 289149.js (NET-SOCKET_IO), and background.js:137 (NET-FETCH). A live socket plus fetch calls is how a real-time chat client syncs with a server. None of these findings names a destination host, and none touches a login page, a wallet or a bank.

Most of the endpoint list is extractor noise. Entries such as border.radius.circle, btn.glass, color.border.accent.orange and calls.function.arguments.delta are CSS tokens and JSON paths that a domain regex mistook for hosts. above.sm, below.sm, ae.jobs, af.pf and be.audio have the same shape: fragments of minified JavaScript. Two entries are real services. app.wascript.com fits a WhatsApp automation vendor's own backend, and api.statsigcdn.com is Statsig's feature-flag CDN. The Atlassian hosts (api.dev.atlassian.com, api.stg.atlassian.com) read as bundled library strings. None is an exfiltration endpoint.

The 754 code-smell findings and 407 indicators are what shipping a bundled front end looks like to a static scanner. On their own they describe JavaScript syntax. What carries weight is what is missing: zero malware signatures, zero secrets, zero tool-poisoning entries. The two obfuscation findings are OBFUSCATION-LARGE_BASE64 in funnil/assets/js/9cf42769-2ad5-4714-8614-9a2b4c455349.CgnacD38.js and OBFUSCATION-FUNCTION_INDIRECT in content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289260.js. A base64 chunk inside a content-hashed asset file is normally an embedded font, image or worker blob, and indirect calls are how webpack resolves modules. Neither file carries a malware signature beside it, which is the pairing that would change this reading.

The strongest argument against treating this as scanner noise is the category itself. A WhatsApp CRM can read every message and contact a user has, and this one names an anonymous publisher and ships a large base64 blob in a directory called funnil. Fair points. What would settle them is a decode of that blob and the real host-permission list, and neither is in the evidence. Until then, the flagged behaviour is a socket connection to a chat backend, a fetch in background.js, and code-smell matches inside content/assets/js bundles. None of that describes harm.

Key Reasons

  • Zero malware signatures, zero secrets and zero tool-poisoning entries across 1186 findings
  • All 22 network findings are library connector patterns (NET-SOCKET_IO, NET-JQUERY_AJAX, NET-FETCH) in content/assets/js bundles and background.js, with no destination hosts named
  • Endpoint list is dominated by CSS tokens and JSON paths misparsed as domains (border.radius.circle, btn.glass, calls.function.arguments.delta)
  • Obfuscation limited to one base64 asset blob in funnil/assets/js/9cf42769-2ad5-4714-8614-9a2b4c455349.CgnacD38.js and an indirect call in a minified bundle, neither paired with a malware signature
  • 754 code-smell matches are consistent with a bundled front-end rather than malicious behaviour

False Positive Considerations

  • CSS property names and JSON paths (border.radius.circle, btn.glass, calls.function.arguments.delta) counted as network domains
  • 754 code-smell findings generated by bundled/minified JavaScript
  • Socket.IO, jQuery ajax and fetch connector matches in vendored content/assets/js files
  • Large base64 blob inside a content-hashed bundle asset read as obfuscation

Reviewed 2026-10-11; recommended action: monitor; 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.

Selected
65
Change since first
+4
Change from previous
No change
Versions:
First analyzed version
7.4.3.54
Jun 19, 2026
Risk range
60 to 73
Across analyzed versions
Latest analyzed version
7.4.3.87
Oct 9, 2026
Selected version
medium
Version
v7.4.3.87
1 weeks ago
Risk score
65
Findings
1187
Change vs previous
No change

Pick any point on the chart to explore that version's code below.

About This Extension

Com novas funcionalidades para WhatsApp web, você pode ter mais controle sobre seus leads além de prospectar mais clientes com envios em massa e exportação de contatos na Ninja Ads. Crie um verdadeiro funil de CRM para vender mais. Características: ✔ Envio em massa para seus contatos ou contatos importados por CSV ✔ Crie Abas personalizadas, encontre facilmente seus contatos importantes Visão Kanban dos contatos do WhatsApp organize seus leads ✔ Envie mensagens para um número que não esteja na sua agenda ✔ Crie notas para cada contato dentro do contato ✔ Você tem que ligar de volta? Crie lembretes para cada contato ✔ Agende Reuniões no google agenda direto ✔ Crie lembretes de forma simples e seja notificado ✔ Crie um banco de respostas rápidas para enviar com um clique ✔ Exporte todos seus contatos ou contatos de grupos ✔ Use em seu idioma nativo (português, espanhol, inglês) ✔ Borre as mensagens para criar vídeos tutorias ✔ Assistente AI — Sua inteligência artificial pronta para ajudar! Otimize seu tempo com um assistente inteligente, rápido e sempre disponível. Responda dúvidas, automatize tarefas, gere textos, traduções e muito mais com o poder da IA. Ideal para profissionais, equipes e quem busca praticidade no dia a dia. Importante: ✔ Aprovado na auditoria de segurança do Google Chrome ✔ Não usa banco de dados, tudo acontece no seu computador. WAPIN é uma extensão independente do Chrome que adiciona recursos extras ao seu WhatsApp web, não fazemos parte do WhatsApp Inc., não temos contrato de uso ou licenças exclusivas.

Frequently Asked Questions