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

MERLIN BOT

by [email protected] · 17 users · 5.0 rating
a92e842f-7ece-5085-ac22-25ef814788ae | v7.4.3.87
0/ 100
MINIMAL risk
-65 since v7.4.3.85
65 → 0 · false positives removed
Threat verdict
Do not install

Confirmed member of a tracked malicious supply-chain campaign.

Analysis record

Analysed
4 days ago
Version
v7.4.3.87
Artifact
SHA256 4EF…2E9
Source
Findings (non-IoC)

Is MERLIN BOT safe?

MERLIN BOT is a customer-management panel that sits on top of WhatsApp Web, so it needs to see your chat list to organize conversations and contacts. The scan records no permission strings for the extension, and the endpoints tied to it are mostly build leftovers. Two are worth naming: app.wascript.com, which reads like the vendor's own service, and api.statsigcdn.com, a feature-flag service used by many front ends. The rest of the list, including border.radius.circle, btn.glass and color.border.accent.orange, is CSS token text that got read as web addresses.

The behavior findings match the product. content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28912.js opens a Socket.IO connection, which is how a live inbox gets messages pushed to it, and background.js:137 makes a plain fetch call. A chat dashboard talking to a server is the whole point of a chat dashboard; what matters is whose server, and nothing in these files shows a destination outside the product itself.

Two hits are labelled as obfuscation: OBFUSCATION-LARGE_BASE64 in funnil/assets/js/9cf42769-2ad5-4714-8614-9a2b4c455349.CgnacD38.js and OBFUSCATION-FUNCTION_INDIRECT in a content bundle. Both files have build-hash names, and indirect calls plus embedded base64 blocks are what bundlers produce when they compress code for shipping.

Most of the 1,195 results come from two noisy checks: code-quality rules that fire on any large JavaScript file, and a domain extractor that treated CSS class names and property chains as hostnames. No malware signature matched anywhere in the package. Two things stay open, the registrant behind app.wascript.com and what sits inside that base64 block in the funnil file.

Evidence ledger

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

780 detail rows

YARA Rule Matches

16 rules
SeverityRuleHitsFilesMetadata
LOWcredential env files 30
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d2896.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28927.jsfluxo/index.js +27 more
-
LOWpostinstall persistence mechanism 19
crm/assets/css/style.cssfluxo/assets/js/aacac57f-f9a2-4a7d-9569-51c193124758.BUttUo7e.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d2893.js +16 more
-
LOWpostinstall environment access 111
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289185.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28981.jscrm/assets/js/81588378-4894-485b-a1a7-52b1571a56a9.B9qdt_GQ.js +108 more
-
LOWpostinstall network communication 94
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289114.jscrm/index.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d2895.js +91 more
-
LOWOriginsNotVerified 5
crm/assets/js/b3c3d2a2-f432-4ecd-a3f4-0b4582cc4a6c.B8_nURbH.jsfunnil/assets/js/770d23cd-9021-4aef-887e-d47811b5c322.B8_nURbH.jsfluxo/index.js +2 more
-
LOWpostinstall crypto operations 44
crm/assets/js/emoji-picker-react.esm.aMh8OwYb.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28929.jscrm/assets/js/modal.DGPvvr-c.js +41 more
-
LOWpostinstall system command 78
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d2895.jswhatsapp/wpp/index.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289221.js +75 more
-
LOWpostinstall obfuscation 83
content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d2895.jswhatsapp/wpp/index.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289187.js +80 more
-
LOWpostinstall registry modification 8
crm/assets/js/5e35787c-36b2-4a56-8ea4-4e0a75aa6943.D2Np3EBj.jscrm/assets/js/b15575b9-e8eb-4d64-83b8-37d47f2b0b0a.BbRllemT.jsfunnil/assets/js/68038811-0075-484f-8b19-297df42f51e1.CVYXH02z.js +5 more
-
LOWpostinstall file manipulation 172
crm/assets/js/index.2_CAfuE5.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28945.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289223.js +169 more
-
LOWpostinstall file download 55
funnil/assets/js/68038811-0075-484f-8b19-297df42f51e1.CVYXH02z.jsfluxo/assets/ttf/Segoeuiitalic.chunk.ttfcontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28912.js +52 more
-
LOWNoUseEval 1
whatsapp/wpp/index.js
-
LOWNoUseWeakRandom 38
funnil/index.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d2893.jscrm/assets/js/81588378-4894-485b-a1a7-52b1571a56a9.B9qdt_GQ.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-3a9d8748d28952.jscontent/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28925.js +12 more
-

Network Indicators

Concrete URLs, domains, IPs, emails, and hashes extracted from the analyzed artifact.

415 total

Loading network indicators

IoC detail rows are loaded outside the initial page render.

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
415
IoC Indicators

YARA Rules Matched

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

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.

MERLIN BOT is a CRM that sits on WhatsApp Web, published under the address [email protected]. The scan covers version 7.4.3.87 and returns 1,195 findings. Almost all of them are the kind of noise a bundled content script produces.

Start with what the code does. content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28912.js and the file ending 175.js each open a Socket.IO client. That is how a live inbox receives messages without polling, and it fits a product whose stated job is organizing WhatsApp chats. background.js:137 makes a fetch call, as do the twelve other NET-FETCH hits spread across the v_7_4_3 chunk family. Two files trigger NET-JQUERY_AJAX because they bundle jQuery. Each of these findings marks a transport mechanism inside a bundled library rather than a destination.

The endpoint list is where the scan gets messiest. It contains border.radius.circle, color.border.accent.orange, btn.glass, calls.function.arguments.delta, artboard.phone and above.sm, which are CSS token names and JavaScript property chains misread as hostnames. api.statsigcdn.com is a feature-flag CDN used by many front ends. app.wascript.com is the one entry that reads like a real backend belonging to this product. The 415 indicators of compromise are that same extractor output at volume, and the 755 code-smell items are rules that fire on any non-trivial minified JavaScript. Neither group carries signal here.

Two obfuscation findings need a direct answer. OBFUSCATION-FUNCTION_INDIRECT fires in content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d289260.js, and OBFUSCATION-LARGE_BASE64 fires in funnil/assets/js/9cf42769-2ad5-4714-8614-9a2b4c455349.CgnacD38.js. Both files carry content-hash names, the pattern webpack and esbuild emit. Indirect calls and embedded base64 blocks are ordinary build output. Across the whole package, zero malware signatures matched, and that check is what separates a packed loader from a packed build.

The strongest counterargument is that "bundled" is an assumption about build tooling, and a large base64 block can hold anything. That objection has force. Two specific things would close it: the decoded content of funnil/assets/js/9cf42769-2ad5-4714-8614-9a2b4c455349.CgnacD38.js, and the registrant behind app.wascript.com. Until those are checked, intent stays unproven in both directions. What the evidence does show is a small extension with 17 users whose network findings all land on library boilerplate, with no signature and no domain aimed at a login page or a financial site.

One limitation: the scan records no permission strings for this extension, so API access cannot be judged from the manifest in this data. What any WhatsApp CRM can see is your chat list and message text, which comes with the product category rather than from a hidden capability.

Key Reasons

  • Zero malware-signature and zero malware findings across 1,195 results in version 7.4.3.87.
  • Network findings are library sinks: Socket.IO in content/assets/js/v_7_4_3_87_0a650f0a-57a6-4989-860e-3a9d8748d28912.js, jQuery Ajax, and fetch at background.js:137.
  • The IoC set is extractor noise, with CSS tokens and property chains such as border.radius.circle and calls.function.arguments.delta misread as hostnames.
  • Both obfuscation hits sit in content-hash filenames consistent with webpack or esbuild output rather than hand-written packing.
  • 755 code-smell items are low-severity rules that fire on any minified JavaScript.

False Positive Considerations

  • IoC extractor misreading CSS tokens and JavaScript property chains as domain names
  • 755 code-smell rules matching minified and bundled JavaScript
  • Minifier output (indirect calls, embedded base64) reported as obfuscation
  • Per-file duplication of library network sinks (Socket.IO, jQuery Ajax, fetch) across bundled chunks

Reviewed 2026-10-14; recommended action: no action; model confidence 75%.

Chrome version history

Risk trend by version

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

Latest
65
Change since first
+1
Change from previous
No change
Versions:
First analyzed version
7.4.3.26
Mar 22, 2026
Risk range
60 to 76
Across analyzed versions
Latest analyzed version
7.4.3.85
Oct 4, 2026
Selected version
minimal
Version
v7.4.3.87
4 days ago
Risk score
0
Findings
1195
Change vs previous
-65

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

About This Extension

Experimente as novas funcionalidades do MERLIN BOT, projetadas para oferecer mais controle sobre seus leads e aumentar suas prospecções de clientes. Com envios em massa e exportação de contatos. Principais Funcionalidades: ✔ Envio em massa para seus contatos ou contatos importados via CSV ✔ Criação de abas personalizadas para fácil localização de contatos importantes ✔ Visão Kanban para organizar seus leads ✔ Envio de mensagens para números não salvos na agenda ✔ Notas personalizadas para cada contato ✔ Criação de lembretes para retornar ligações ✔ Agendamento de reuniões no Google Agenda ✔ Configuração de lembretes simples com notificações ✔ Banco de respostas rápidas para envio com um clique ✔ Exportação de todos os contatos de grupos ✔ Suporte a múltiplos idiomas (português, espanhol, inglês) ✔ Função de borrar mensagens para criação de vídeos tutoriais. ✔ 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. Destaques de Segurança: ✔ Aprovado em auditoria de segurança pelo Google Chrome ✔ Não utiliza banco de dados, todas as operações são realizadas localmente no seu computador MERLIN BOT é 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