Chrome Web Store Verified

Rook

by [email protected] · 72 users · 5.0 rating
33101a5f-8257-5fdc-a47f-2578b1511c35 | v1.1.0.729
86/ 100
CRITICAL risk
No change since v1.1.0.722
Analyst verdict
Do not install

The AI review rates the findings as likely false positive, but the risk score (86/100) still counts them.

Analysis record

Analysed
4 days ago
Version
v1.1.0.729
Artifact
SHA256 25D…187
Source
Findings (non-IoC)

Is Rook safe?

Rook is a Chrome extension that automates browser work. According to its own description it moves across tabs, apps and files and turns repeated tasks into reusable routines, and the endpoints in its code back that up: it talks to api.cerebras.ai, api.deepseek.com, api.fireworks.ai, anthropic.com and api.clay.com, which are AI model and CRM services. An automation agent that can hand a task to several different AI providers has to reach a handful of hosts like these.

The findings that look alarming need context. Two files, assets/delegated-run.worker-4CRJ8xfO.js and assets/think-host.worker-C6wY548k.js, trip a rule called YARA--supply_chain_sourcemap_appended_iife, which flags JavaScript that carries on after a sourcemap marker. Build tools produce files in that shape routinely, and the match comes with no payload, no remote address and no sign of credential access attached to it. If it were real, it would mean the extension was smuggling hidden code into a worker script.

Most of the rest of the noise comes from the scanner tripping over bundled libraries. Rook ships esbuild, the Less CSS compiler and icon font files, and those carry large binary blocks, unicode tables and private-use glyphs that get labelled as obfuscation. The thousands of indicators of compromise include strings like ad.creditcard and aes.new, which are fragments of minified code rather than web addresses.

One gap: the permission list captured here is empty, so reading the published manifest would confirm exactly which sites Rook can see. Nothing in the code we examined points to data leaving your browser for anywhere except the AI providers it advertises.

Evidence ledger

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

1000 detail rows

YARA Rule Matches

18 rules
SeverityRuleHitsFilesMetadata
HIGHsupply chain sourcemap appended iife 2
assets/delegated-run.worker-4CRJ8xfO.jsassets/think-host.worker-C6wY548k.js
-
LOWpostinstall file download 227
chunks/shaderlab-QzRPXpa3.jschunks/imba-BNhPHnyc.jschunks/typescript-BWGGkVQI.js +224 more
-
LOWNoUseWeakRandom 18
chunks/client-D0Ix2xSU.jschunks/xlsx-CuSbHU4R.jsassets/actor-backup.worker-aCEmwONW.js +15 more
-
LOWNoUseEval 4
chunks/lib-CUif5TQz.jsassets/think-host.worker-C6wY548k.jsassets/workspace-executable-compiler.worker-nvYBSIAG.js +1 more
-
LOWcredential git credentials 4
chunks/mdx-DQZ5AkYe.jschunks/mdx-CT6rFF7S.jsassets/delegated-run.worker-4CRJ8xfO.js +1 more
-
LOWDebuggerStatementsShouldNotBeUsed 38
background.jschunks/typescript-mWf_vrc0.jschunks/javascript-O6_qsh94.js +35 more
-
LOWServerHostnameNotVerified 1
chunks/lib-CUif5TQz.js
-
LOWUsingCommandLineArguments 4
chunks/typescript-mWf_vrc0.jsassets/delegated-run.worker-4CRJ8xfO.jsassets/workspace-executable-compiler.worker-nvYBSIAG.js +1 more
-
LOWLocalStorageShouldNotBeUsed 1
chunks/lib-CUif5TQz.js
-
LOWcredential env files 58
chunks/latex-P327AtDW.jschunks/gruvbox-dark-hard-DXm60lX3.jschunks/gruvbox-dark-medium-GE2thSmD.js +55 more
-
LOWpostinstall persistence mechanism 84
chunks/logo-Cluzi2Zq.jschunks/less-DVTAwKKz.jschunks/handlebars-BuuYJbrF.js +81 more
-
LOWRedirectToUnknownPath 5
assets/think-host.worker-C6wY548k.jsassets/workspace-executable-compiler.worker-nvYBSIAG.jsassets/delegated-run.worker-4CRJ8xfO.js +2 more
-
LOWcredential skype data 1
assets/think-host.worker-C6wY548k.js
-
LOWpostinstall crypto operations 96
chunks/ssh-config-DlA0k24P.jschunks/vyper-CgoNMtux.jschunks/night-owl-light-eJ-hLW7d.js +93 more
-
LOWpostinstall file manipulation 334
chunks/gruvbox-dark-medium-BPjhmG05.jschunks/emacs-lisp-c_oH4hRZ.jschunks/rose-pine-dawn-8PwUyIlP.js +331 more
-
LOWpostinstall environment access 82
chunks/gdresource-C0sCabJj.jschunks/jison-DarOIlkb.jschunks/code-transfer-DvPN8-XE.js +79 more
-
LOWpostinstall obfuscation 2
chunks/coq-BrsZFFmf.jschunks/catppuccin-frappe-3VR1Za6u.js
-
LOWpostinstall registry modification 18
content-scripts/webmcp-global.jschunks/racket-ByduP6X2.jschunks/blade-DX8k3njE.js +15 more
-

Network Indicators

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

3,384 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.

37
Noisy-finding weight
x1.00
Publisher domain
mcp-b.ai
Observed
Store verification signal
Limited signal
Limited
Extension portfolio
2
Portfolio

12 evidence rows available.

Finding Categories

2
Malware Signatures
6
Obfuscation
14
Network
3,384
IoC Indicators

YARA Rules Matched

18 rules(979 hits)
supply chain sourcemap appended iife postinstall file download NoUseWeakRandom NoUseEval credential git credentials DebuggerStatementsShouldNotBeUsed ServerHostnameNotVerified UsingCommandLineArguments LocalStorageShouldNotBeUsed credential env files postinstall persistence mechanism RedirectToUnknownPath credential skype data postinstall crypto operations postinstall file manipulation postinstall environment access +2 more

Requested Permissions

25 permissions
debugger

Full access to Chrome DevTools debugging protocol

Dangerous
<all_urls>

Access and modify data on every website you visit

Dangerous
downloads

Manage, modify, and monitor downloads

High
history

Read and modify your browsing history

High
identity

Access your identity and sign-in tokens

High
clipboardRead

Read data from your clipboard

High
activeTab
Medium
tabs
Medium
bookmarks
Medium
topSites
Medium
sessions
Medium
offscreen
Low
alarms
Low
sidePanel
Low
storage
Low
unlimitedStorage
Low
tabGroups
Low
scripting
Low
identity.email
Low
notifications
Low
webNavigation
Low
search
Low
declarativeNetRequestWithHostAccess
Low
clipboardWrite
Low
webAuthenticationProxy
Low

AI Security Report

AI Security Review

Evidence context: threat category none; evidence quality moderate.

Rook describes itself as an agent that automates work across tabs, apps and files, and the code is consistent with that job. The network hits sit in worker files and build chunks: NET-SOCKET_IO-background.js-54, NET-FETCH-assets/sqlite3-worker1-C4QEEqpT.js-36 and NET-FETCH-chunks/dictation-DJiaI1G6.js-31 are library-level detections for socket.io and fetch, not evidence of a covert channel. The endpoint list is the useful part. anthropic.com, api.cerebras.ai, api.deepseek.com, api.fireworks.ai and api.clay.com are model-provider and CRM APIs. An assistant that can route a prompt to five different providers has to talk to five different hosts, and those are the hosts.

The same list also contains a large amount of text that is not a domain at all: ad.creditcard, aes.new, add.menu, agent.cc, a-date.now, 00value.int, 3a123.md. These are property chains and string fragments the extractor lifted out of minified JavaScript. They resolve to nothing and match no service the extension claims to use. They are also why the indicator count reaches 3,384, and that count says more about the extractor than about the code.

The two high-severity signatures are both YARA--supply_chain_sourcemap_appended_iife, one in assets/delegated-run.worker-4CRJ8xfO.js:616 and one in assets/think-host.worker-C6wY548k.js:1396. That rule looks for live code placed after a sourcemap comment, which is how bundlers and some build plugins emit output. Neither hit names a payload, a remote host or a credential path. They describe the shape of the build output rather than behaviour.

The obfuscation findings map onto shipped third-party code. OBFUSCATION-LARGE_WASM_FILE lands on assets/esbuild.wasm, which is esbuild, a JavaScript bundler the extension vendors. OBFUSCATION-INVISIBLE_ZERO_WIDTH appears in chunks/less-BGJv5CZz.js and chunks/less-DVTAwKKz.js, the Less CSS compiler, where zero-width characters live in string tables. OBFUSCATION-EXCESSIVE_PRIVATE_USE_AREA in chunks/lib-CUif5TQz.js is the glyph map you find in bundled icon fonts. OBFUSCATION-UNICODE_HEAVY in chunks/sidepanel-Dp3Vi7g6.js:452 sits in the same family of bundled text data. None of these are payload hiding. The 1,641 code-smell hits scatter across hashed Vite chunks, which is what happens when hundreds of npm packages ship in one bundle.

A skeptic would push back on two points. First, assets/esbuild.wasm means the extension can compile and run JavaScript it generates, which is a real capability and the reason an agent like this deserves review rather than a free pass. Second, the sourcemap-appended-IIFE rule exists because malware does hide code that way, and two hits is two hits. What would move this verdict is a payload: a credential read, a remote script fetch, a second-stage domain. None of that appears. A manifest read would also help, because the captured permission list is empty and a single manifest-analysis finding is all we have on declared access. That gap is worth closing.

Key Reasons

  • Network endpoints are AI provider and CRM APIs (api.cerebras.ai, api.deepseek.com, api.fireworks.ai, anthropic.com, api.clay.com), consistent with an agent that routes prompts to multiple models.
  • Both malware-signature hits are the same bundler-pattern rule, YARA--supply_chain_sourcemap_appended_iife, on hashed worker chunks with no payload, domain or credential path attached.
  • Obfuscation findings land on vendored third-party artifacts: assets/esbuild.wasm, chunks/less-BGJv5CZz.js, chunks/less-DVTAwKKz.js and chunks/lib-CUif5TQz.js.
  • The 3,384 IoC hits include non-hostname fragments such as ad.creditcard, aes.new and agent.cc, so volume reflects extractor behaviour rather than code behaviour.
  • Developer identity matches the product domain mcp-b.ai and the version is current, with no typosquatting against a known extension name.

False Positive Considerations

  • IoU extractor garbage: ad.creditcard, aes.new, add.menu, a-date.now and 00value.int are minified-code fragments, not registrable domains
  • code-smell volume (1,641) and IoC volume (3,384) generated by hundreds of bundled npm packages in hashed Vite chunks
  • OBFUSCATION-INVISIBLE_ZERO_WIDTH and OBFUSCATION-EXCESSIVE_PRIVATE_USE_AREA firing on unicode tables in the bundled Less compiler and icon font glyph maps
  • YARA--supply_chain_sourcemap_appended_iife matching standard bundler output that appends code after a sourcemap comment

Reviewed 2026-10-14; recommended action: suppress false positive; model confidence 78%.

Chrome version history

Risk trend by version

4 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
86
Change since first
+21
Change from previous
No change
Versions:
First analyzed version
1.1.0.641
Sep 19, 2026
Risk range
65 to 86
Across analyzed versions
Latest analyzed version
1.1.0.729
Oct 11, 2026
Selected version
critical
Version
v1.1.0.729
4 days ago
Risk score
86
Findings
5048
Change vs previous
No change

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

About This Extension

Rook is an AI agent that lives in your browser. Ask it to research across tabs, organize your browser, work with connected apps, create files, or repeat a task on a schedule. You can: - research and take action across multiple tabs; - organize tabs, bookmarks, history, and downloads; - work with Gmail, Google Calendar, Google Drive, and other connected services; - create reusable skills, scripts, conversations, and files; - choose local folders for a task; and - schedule recurring routines. Browser actions remain visible in the tabs they affect. The agent completes ordinary sign-in and consent flows itself; physical-presence controls such as a CAPTCHA, hardware key, or phone challenge wait for you in the affected tab. Turn one-off work into reusable skills and routines, then run them again whenever you need them. Sign in with ChatGPT to get started. Connected services and local folders are optional—you choose what the agent can use.

Frequently Asked Questions