Is Switch My Search safe?

Medium risk

Switch My Search sends default search queries to switchmysearch.com through its search provider and redirect rules.

The extension sets switchmysearch.com as the browser's default search URL, so default-search terms are included in requests to that domain. Its background worker also installs a redirect rule that rewrites matching search navigations to switchmysearch.com/ext/search with the selected search engine source and original query parameters.

45Risk
Who publishes it

VPP Technologies L.L.C. - 12 other listings from the same operator, 2 of them carrying a finding

What this publisher told the store about itself, and the other listings that told it the same thing.

Declared legal entity
VPP Technologies L.L.C.
Registered address
900 Oakmont Avenue, 301, WESTMONT, IL 60559, US
Registered contact
Nick Szabo

Same store account

2 other listings published from this account, 16k+ users between them, none of them carrying a finding.

Same operator - 10 listings

Published under a different store account, but sharing the registered address, contact or declared legal entity this one gave the store.

AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.

Publishers can request a review.

Findings

Switch My Search routes every search through switchmysearch.com

The extension makes itself your browser's default search engine, then a background rule redirects every address-bar search to switchmysearch.com with your full query in the URL, continuing on to a third-party ad-dispatch domain.

Severity
Medium unwanted
Type
Unexpected
CWE
CWE-359
Source
Dynamic sandbox
What actually happens
You did this

You perform a search from the browser's address bar using the default search engine.

The extension set this engine at install time, without a separate consent prompt.

The extension did this

The search is sent to switchmysearch.com with your exact query text in the URL.

A background rule then rewrites the request to a variant of the same destination chosen in the extension's popup.

What the request carries
  • Your search text
    best noise cancelling headphones 2026

    The exact phrase you searched for, carried in the q= parameter to switchmysearch.com and on to the next hop.

  • Selected-engine flag
    src=yahoo

    Tells switchmysearch.com's backend which redirect variant to use next: default, google, bing, or yahoo.

Captured request
GEThttps://switchmysearch.com/ext/search?src=default&q=best+noise+cancelling+headphones+2026

Observed during dynamic analysis: a chain of redirects (307, then 302, then 301, ending in a 200 response) that rewrites src=default to a chosen-engine variant on the same host, then continues to a third-party ad-dispatch domain. The search text remained present in the URL at every hop.

The code that does this

Search provider override and the redirect rule

Readable version

Same code; the file already ships unminified

manifest.json
"chrome_settings_overrides": {   "search_provider": {      "encoding": "UTF-8",      "favicon_url": "https://switchmysearch.com/favicon.ico",      "is_default": true,      "keyword": "search",      "name": "Engine",      "search_url": "https://switchmysearch.com/ext/search?src=default&q={searchTerms}"   }}

Same code; the file already ships unminified

background.js
function generateDynamicRule(src) {  const ruleId = Math.floor(Date.now() / 1000);  const dynamicRule = {    "id": ruleId,    "priority": 1,    "action": {      "type": "redirect",      "redirect": {        "regexSubstitution": `https://switchmysearch.com/ext/search?src=${src}&\\1`      }    },    "condition": {      "regexFilter": ".*src=default&(.*)",      "resourceTypes": ["main_frame"]    }  };  return [dynamicRule];}function applyDynamicRules(src = "yahoo") {  removeAllDynamicRules();  const dynamicRule = generateDynamicRule(src);  chrome.declarativeNetRequest.updateDynamicRules(    { removeRuleIds: [0], addRules: dynamicRule },    function () { /* ... */ }  );}chrome.runtime.onInstalled.addListener(function() {  applyDynamicRules();  chrome.storage.sync.set({ selectedButton: "yahooBtn" });});
Where the query ends up
    • switchmysearch.com

    Installed as your default search provider; receives the full query text on every address-bar search and issues the onward redirect.

    • axt.iadispatcher.com

    Ad-dispatch domain reached via a downstream redirect from switchmysearch.com; the query text is still present in the URL at this hop.

What it can do

Permissions this extension asks for, as declared in version 1.1.3. Asking for a permission is not a finding on its own - it is what the extension can do if it chooses to.

  • Read and change your data on switchmysearch.com

    https://switchmysearch.com/*

  • Store data in your browser

    storage

  • Block and redirect the requests your browser makes

    declarativeNetRequest

Where it sends data

Destinations our analysis observed Switch My Search contacting. Sending data somewhere is not a finding on its own - an extension that syncs your settings has to talk to its own server - but it is where your data can go, and who else it goes to.

  • switchmysearch.com

    Switch My Search sends data to switchmysearch.com. No other extension we have analysed sends data here.

Updated 30 September 2026kbdkcdbedgbgfgcnpajlehfkmgdhchhm