5 min read

Mitaka: Look Up Any IP, Domain or Hash from a Right-Click (GitHub, Scanned)

A browser extension that sends any selected IP, domain, URL or hash to 65+ threat-intel services.

Mitaka logo
✅
Scan: safe. Nothing malicious, and nothing vulnerable reaches the extension you install. One thing to know: urlscan.io scans are public by default. Scanned Oct 28, 2026; the full report is below.

Mitaka adds a context menu to Chrome and Firefox. Select an indicator on any page, an IP address, domain, URL, file hash, CVE number, ASN, Bitcoin or Ethereum address, or a Google Analytics or AdSense ID, right-click, and it offers every service that can look that type up: VirusTotal, urlscan.io, Shodan, Censys, GreyNoise, AbuseIPDB, URLhaus, MalwareBazaar, crt.sh, the Wayback Machine, NVD and more than 50 others. It also refangs as it selects, so example[.]com and hxxp:// in a threat report become a working lookup without editing.

It is the work of Manabu Niseki (ninoseki), a Japanese threat-intelligence researcher, and has been maintained since 2018: about 1,900 stars, 18 contributors and 113 releases, the latest in August 2026. It is MIT-licensed and published on the Chrome Web Store and Firefox Add-ons, so most people never need the GitHub repository at all.

Most entries simply open the service's search page in a new tab. Four scan engines (urlscan.io, VirusTotal, Hybrid Analysis and Browserling) can submit a URL for analysis, and the first three need your own API key, stored locally in the browser. The author states the extension collects nothing, and the source agrees.

  • Repository: github.com/ninoseki/mitaka
  • Licence: MIT (MIT License)
  • Language: TypeScript. Stars: 1,884. Forks: 194. Last push: Oct 21, 2026.
  • Scan: safe, Oct 28, 2026, commit 44d3b74

Who it is for

SOC analysts, incident responders and threat-intel researchers who read reports full of indicators all day, plus journalists and fact-checkers verifying domains and wallets in a story.

Getting started

1. Install from the Chrome Web Store (Edge and other Chromium browsers can use it too)

open https://chromewebstore.google.com/detail/mitaka/bfjbejmeoibbdpfdbmbacmefcbannnbg

2. Or install from Firefox Add-ons, and allow access to all websites when asked

open https://addons.mozilla.org/en-US/firefox/addon/mitaka/

3. Or build it yourself from source (Node.js 24) and load the unpacked extension

git clone https://github.com/ninoseki/mitaka && cd mitaka && npm ci && npm run build

Scans submitted to urlscan.io default to public visibility, so anyone can see the URL you scanned. If you are checking internal links or anything sensitive, switch it to unlisted or private on the options page before your first scan.

Safety scan

We cloned ninoseki/mitaka at commit 44d3b74 on Oct 28, 2026 and ran the checks described on the GitHub Tools page: credential patterns, decode-and-execute code, install-time scripts, committed binaries, risky CI workflows, every host the code talks to, known vulnerabilities in pinned dependencies, and project hygiene. A person read every hit. This is what we found.

  • No secrets, no pattern hits and no committed binaries across 161 files. The hosts the scan lists are the 65-plus lookup services themselves. The extension asks only for contextMenus, storage and notifications; its content script reads the text you select so it can build the menu, and the only network calls in the source are the three scan engines you give a key to.
  • package-lock.json has 31 known advisories, 4 of them critical, and all four are in build and test tooling that never ships in the extension. form-data 2.3.3 arrives through request, pulled in by coveralls, the coverage uploader. shell-quote comes from npm-run-all2, the script runner. Both tinypool advisories come from oxfmt, the code formatter. The highs (js-yaml, sharp, brace-expansion, vite and others) are dev dependencies of the same kind; nanoid and source-map-js sit under PostCSS and the Vue compiler, which run at build time.
  • One install hook, postinstall running wxt prepare, which generates the extension framework's type definitions for development. It only runs if you build from source.
  • Two workflows, CI and Release, with no pull_request_target and every third-party action pinned to a commit. The release job builds and uploads to the Chrome Web Store and Firefox Add-ons from a published GitHub release.
  • Licence and contributing guide present; no security policy, Dependabot, CodeQL or code of conduct. OpenSSF Scorecard rates it 3.8, mostly for missing branch protection and code review on a one-maintainer project.

What the scanner counted

CheckResult
SecretsNone found.
Suspicious codeNone found.
Install-time code1 npm lifecycle script
Committed binariesNone.
CI workflows2 workflows. None use pull_request_target. 0 of 4 third-party actions pinned to a tag rather than a commit.
Network hosts40 distinct hosts referenced from source; most often github.com, www.virustotal.com, www.hybrid-analysis.com, urlscan.io. No URLs to bare IP addresses.
Known vulnerabilities31 advisories across 530 pinned packages: 4 critical, 12 high, 14 moderate, 1 low. package-lock.json: 545 packages, 31 advisories.
Project hygieneHas licence file, contributing guide. Missing security policy, automated dependency updates, CodeQL.
OpenSSF Scorecard3.8 out of 10, as of Oct 26, 2026.

The raw findings

Every hit the scanner wrote out, with a link to the exact line at the scanned commit. Secrets candidates are redacted.

npm lifecycle scripts (1)
  • package.json postinstall: wxt prepare
Worst known vulnerabilities (24 of 31)
AdvisorySeverityPackageSummary
GHSA-fjxv-7rqg-78g4criticalform-data@2.3.3form-data uses unsafe random function in form-data for choosing boundary
GHSA-pqg4-j6r4-53mvcriticalshell-quote@1.8.4shell-quote: `quote()` command injection via a line terminator in a token after a `{ comment }` token
GHSA-5gmw-xhrv-c9v3criticaltinypool@2.1.0Tinypool: Prototype Pollution gadget in worker options leads to Remote Code Execution
GHSA-85c8-ppgw-ccprcriticaltinypool@2.1.0Tinypool: Prototype Pollution Gadget to RCE in run() options
GHSA-6j4f-fj2g-mc7phighbrace-expansion@5.0.9brace-expansion: DoS via uncontrolled recursion in parseCommaParts causing stack exhaustion
GHSA-qhr7-859c-m2p7highbrace-expansion@5.0.9brace-expansion: DoS via uncontrolled recursion on nested brace groups causing stack exhaustion
GHSA-hmw2-7cc7-3qxxhighform-data@2.3.3form-data: CRLF injection in form-data via unescaped multipart field names and filenames
GHSA-2883-xcg3-v3hhhighjs-yaml@3.14.2js-yaml: maxTotalMergeKeys does not limit CPU use for empty merge sources
GHSA-52cp-r559-cp3mhighjs-yaml@3.14.2js-yaml: YAML merge-key chains can force quadratic CPU consumption
GHSA-5p4m-2wfm-xmqjhighjs-yaml@3.14.2JS-YAML: Quadratic CPU consumption in !!omap resolution (3.x and 4.x) - CVE-2026-59870 fix not backported
GHSA-2v37-7h3g-55p8highnanoid@3.3.16nanoid: custom generators can loop indefinitely when size is zero
GHSA-rgj7-g3m4-5g8chighsharp@0.35.3sharp: Vulnerabilities in libheif: GHSA-g89c-p67h-r497 and GHSA-2jg2-4ch7-h545
GHSA-wq5f-xc86-pv6whighsharp@0.35.3sharp : Vulnerability in librsvg dependency CVE-2026-96889
GHSA-395f-4hp3-45gvhighshell-quote@1.8.4shell-quote: Quadratic-complexity Denial of Service in `parse()` (CWE-407)
GHSA-68fv-2mgg-jv7qhighsource-map-js@1.2.1source-map-js allows event-loop denial of service through indexed source-map section offsets
GHSA-587h-7wmj-h5pmhighvite@8.0.16launch-editor: `fs.existsSync()` existence check can be bypassed on Windows
GHSA-p498-v437-472gmoderate@humanfs/node@0.16.7humanfs: Recursive copy follows symlinked files and copies data from outside the source tree
GHSA-qxg6-89mg-rqv8moderate@vitest/mocker@4.1.11Vitest: Code injection via unauthenticated manual mock registration
GHSA-xp26-3454-mjgpmoderate@vitest/mocker@4.1.11Vitest: Windows backslash traversal bypasses the @vitest/mocker redirect allowlist fix
GHSA-q2hr-2g5m-vwhrmoderatebrace-expansion@5.0.9brace-expansion: Quadratic-time expansion of the `{a},b}` rewrite causes CPU denial of service
GHSA-h67p-54hq-rp68moderatejs-yaml@3.14.2JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases
GHSA-rj75-hqrm-r3gfmoderatepostcss-selector-parser@7.1.4PostCSS: Quadratic complexity in flat selector parsing allows CPU exhaustion
GHSA-4mjr-xmp4-gh2gmoderateqs@6.5.5qs: Denial of Service via Attacker Controlled isBuffer
GHSA-6rw7-vpxm-498pmoderateqs@6.5.5qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion

By the numbers

Stars1,884
Forks194
Contributors18
Commits1,511
Open issues0
Open pull requests10
Releases113
Latest releasev2.10.1
LicenceMIT
Main languageTypeScript
Project age8 years
Last pushOct 21, 2026
Tracked files161
Lines of code5,702
Checkout size902 KB

Lines by language: TypeScript 4,871, Vue 310, Markdown 268, YAML 132, JSON 104, HTML 14.

Questions

Is Mitaka free?

Yes. Mitaka is MIT-licensed and free on both the Chrome Web Store and Firefox Add-ons. Most of the services it links to have free search pages; the scan features for VirusTotal, urlscan.io and Hybrid Analysis need an API key from each, and their free tiers are enough for occasional use.

Does Mitaka send what I select anywhere?

No, not until you click a menu item. Selecting text only builds the menu inside your browser. Clicking a search opens that service in a new tab with the indicator in the URL, and clicking a scan submits it with your own API key. Settings sync through your browser account; API keys stay on the device.

Is it okay to look up indicators from a threat report or incident?

Looking up public indicators is what these services exist for. Take care with anything from your own organisation's incident: a public urlscan.io scan or a VirusTotal upload can tip off an attacker or expose internal URLs, so use private visibility, and follow your employer's rules on sharing data with third parties.


This post is part of GitHub Tools, where every repository is cloned and scanned before it is written up. The scan is a snapshot of one commit on one day; the repository has moved on since, so check it before you install.