CryptoPriceSearch (BETA)

ID: hmdfjdmlicmgkkofgdjcndplcepgohgi

Could be malicious

Supported Languages

🇧🇷Brazilian Portuguese
🇺🇸English
🇫🇷French
🇩🇪German
🇮🇹Italian
🇯🇵Japanese
🇲🇽Latin American Spanish
🇵🇹Portuguese
🇪🇸Spanish

Extension Info & Metadata

Status
Removed
Version
13.986.19.63396
Size
0.40 MB
Rating
2.2/5
Reviews
6
Users
26,983
Type
Extension
Updated
Apr 15, 2021
Category
38_search_tools
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
No

Publisher Contextual Analysis

Author
http://cryptopricesearch.comView Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
No
Mailbox exists
Yes
Total Extensions
2
Active
0
Obsolete
2
Listed
2
Unlisted
0
Total Users
34,212

How do cryptocurrencies work? Learn about blockchain, bitcoin and gain more insight into mining cryptocurrency.

THIS EXTENSION IS FOR BETA TESTING. The production version can be found here - https://chrome.google.com/webstore/detail/cryptopricesearch/dgdbnbnhgiecnfdnkdlnadepkgekkooo Get CryptoPriceSearch, easily find pricing information, plus web search, free on your Chrome New Tab Extension. Comes with daily content to show you news, weather and more in a new Chrome window! By installing this extension, you agree to the End User License Agreement and Privacy Policy (eula.mindspark.com/eula/) This new tab extension is a product of Ask Applications, Inc. Permissions used & reasons: "Read and change your data on a number of websites" For our product to work, we require access to the websites we own and manage. "Replace the page you see when opening a new tab" This allows us to show you our product - new tab page with free web search. "Read your browsing history" This allows us to tailor product specific content or offers towards relevant information. "Display notifications" This allows us the option to send you updates or additional product offers once you’ve already enjoyed the free product. "Manage your apps, extensions, and themes" This allows us to help you disable or remove this product and also understand whether we are able to provide the best experience. Beta Release log: 13.953 : Non user facing attribution events 13.960 : Daily Content, Mac user consistency, optimized URL structure and bug fixes.

Item
Type
Severity
Description
cookies
Permission
High
This permission provides full access to read and modify browser cookies. Rated High because it can steal session tokens, modify authentication cookies, and compromise accounts across websites.
webNavigation
Permission
High
This permission enables monitoring of all browser navigation events and transitions. Rated High because it can track every page visit, navigation method, and browsing pattern, potentially exposing sensitive browsing behavior and user activities.
Contextual Risk Factors
Risk Factor
High
The following context increases the overall risk:• 10% increase: Early script execution enables pre-emptive content manipulation
storage
Permission
Medium
This permission allows storing data locally in the browser. Rated Medium because it can persist sensitive user data, track user activities over time, and potentially store malicious payloads.
tabs
Permission
Medium
This permission enables tab management and monitoring. Rated Medium because it can track open tabs, access tab metadata, and monitor user browsing patterns.
*://*.cryptopricesearch.com/*
Host
Medium
Host permission — access limited to this URL pattern.
*://hp.myway.com/*
Host
Medium
Host permission — access limited to this URL pattern.
Early Content Script Execution
Risk Factor
Medium
This extension runs content scripts at document_start.
alarms
Permission
Low
This permission schedules periodic tasks. Rated Low because it can only trigger events at specified times without access to sensitive data.

The extension overrides the browser's new-tab page (a known monetization-hijack pattern in the Mindspark/Ask toolbar family) and injects a content script into download.cryptopricesearch.com/blank.jhtml whose only job is to read window.localStorage values and ship them back to the background. This pairing of newtab takeover plus a hidden DLP (Download Landing Page) data-pickup script is the textbook 'partner/affiliate ID hand-off' mechanism used by adware toolbars.

manifest.json (Line 23)
"chrome_url_overrides": {     "newtab": "ntp1.html"   },   "permissions": [        "alarms",        "cookies", "storage",        "tabs",        "webNavigation"    ],   "content_scripts": [     {       "all_frames": true,       "js": [                "/js/logger.js",                "/js/util.js",                "/js/localStorageContentScript.js"            ],       "matches": [                "https://download.cryptopricesearch.com/blank.jhtml"            ],       "run_at": "document_end"        }

Content script injected into the partner DLP page exposes an arbitrary getLocalStorage(key) RPC to the extension background, allowing it to siphon any localStorage value from the cryptopricesearch.com site. The key is dictated by the background (which requests 'toolbarData') so the page's localStorage can be exfiltrated to the extension and onward to logging endpoints. Generic 'read any key from localStorage' bridges are a classic data-exfiltration primitive.

js/localStorageContentScript.js (Line 1)
var portNamePrefix = "localStorageContentScript";var channel;var commands = {  getLocalStorage: function(data) {    var storage = window.localStorage;    var key = data && data.key;    return Promise.resolve(storage.getItem(key));  }};function init() {  var port = chrome.runtime.connect({    name: Util.generateGuid(portNamePrefix + "-" + chrome.runtime.id + "-")  });  channel = {    id: port.name,    port: port,    callbacks: new Map()  };  port.onMessage.addListener(onConnectMessage);}

The background script uses the privileged chrome.cookies API to enumerate ALL cookies on the cryptopricesearch.com domain and harvest them into a 'toolbarData' object that is later transmitted to logging endpoints. Bulk cookie enumeration on a third-party domain is a hallmark of credential/affiliate-tracker theft and is the reason the 'cookies' permission is granted.

js/extensionSetUpDLP.js (Line 273)
ExtensionSetUpDLP.getDataFromCookies = function(domain) {    var parseCookies = function(cookies) {      var cookiesObj = cookies.reduce(function(obj, cookie) {        obj[cookie.name] = cookie.value;        return obj;      }, {});      var toolbarData = ExtensionSetUpDLP.cleanToolbarData(cookiesObj);      Logger.log("ExtensionSetUpDLP: The fetched DLP data looks like: " + JSON.stringify(toolbarData));      return toolbarData;    };    return new Promise(function(resolve, reject) {          chrome.cookies.getAll({                domain: domain              }, function(cookies) {                if (cookies.some(function(cookie) {                    return cookie.name === "toolbarId";                  })) {                  resolve(parseCookies(cookies));

On install, the extension silently opens an inactive tab to https://download.cryptopricesearch.com/blank.jhtml, asks the injected content script to dump a localStorage key, and then closes the tab. This 'open hidden tab → harvest data → close tab' pattern is unauthorized data collection performed without any user consent UI and is also used as a covert install-attribution channel.

js/extensionSetUpDLP.js (Line 97)
ExtensionSetUpDLP.getDataFromLocalStorage = function(url, key, timeout) {    return new Promise(function(resolve, reject) {          chrome.tabs.create({                url: url,                active: false              }, function(tab) {                ...                var onLocalStorageContentScriptConnect = function(port) {                    ...                    if (port.sender.tab.windowId === tab.windowId &&                      port.sender.tab.id === tab.id &&                      port.name.indexOf(ExtensionSetUpDLP.localStorageContentScriptScopeName) === 0) {                      requestDataFromLocalStorageContentScript(port, key)

Every event the extension fires (install, alarm, every 6h 'ToolbarActive' live-ping, error, info) builds a query string of identifying fields (toolbar GUID, partner ID, partner sub-ID, install date, country, user segment, etc.) and exfiltrates it to anx.cryptopricesearch.com. This is persistent telemetry that uniquely identifies the installation and tracks user activity over time.

js/ul.js (Line 14)
UnifiedLogging.fireULOnBehalfOfDLP = function(url, data) {  var searchParamsFromData = UnifiedLogging.getParamsFromData(data);  url += ~url.indexOf("?") ?    searchParamsFromData :    searchParamsFromData.replace("&", "?");  fetch(url)    .catch(Logger.warn);};...UnifiedLogging.createStandardData = function(eventName, state) {  return {    anxa: "CAPNative",    anxv: state.replaceableParams.toolbarVersion,    anxe: eventName,    anxt: state.toolbarData.toolbarId,    anxtv: state.replaceableParams.toolbarVersion,    anxp: state.toolbarData.partnerId,    anxsi: state.toolbarData.partnerSubId,    anxd: state.replaceableParams.buildDate,    f: "00400000",    anxr: +new Date(),    coid: state.toolbarData.coId,    userSegment: state.toolbarData.userSegment  };};

On the very first new-tab open, the extension injects a hidden iframe pointing at a templated pixel URL (e.g. install_pixels.jhtml or conversion.html) carrying partnerId, sub_id, coId, toolbarId and additional s2-s5 sub-affiliate slots, then removes the iframe. This is a covert install-attribution / conversion-tracking exfiltration channel disguised as a 1x1 pixel.

js/firstOpenNT.js (Line 26)
FirstOpenNT.firePixel = function(state) {  return new Promise(function(resolve) {    if (!state.toolbarData.pixelUrl || !state.configVars)      return resolve();    var pixelURL = FirstOpenNT.replaceChildDomainToParent(state.toolbarData.pixelUrl, state.configVars      .downloadDomain);    var iframe = document.createElement("iframe");    iframe.addEventListener("load", function(e) {      iframe.parentNode.removeChild(iframe);      Logger.log("UnifiedLogging: pixel fired " + pixelURL);    }, true);    iframe.setAttribute("src", pixelURL);    document.body.appendChild(iframe);    state.toolbarData.pixelUrl = null;    resolve();  });};

On every cryptopricesearch.com page (document_start), the extension publishes the user's toolbar GUID, partner IDs, install date and version into the page via postMessage and writes 'mindsparktb_*' identifying cookies. This silently tags the host page with a persistent fingerprint that any page-level script can read and forward off-domain — direct unauthorized data leakage from the extension to web pages.

js/extensionDetectForPPContentScript.js (Line 34)
ExtensionDetectForPPContentScript.getMessageListener = function(state) {  return function(message) {    if (message.origin !== document.location.origin)      return;    var data = typeof message.data === "string" ?      JSON.parse(message.data) :      message.data;    if (data.from !== ExtensionDetectForPPContentScript.fromExtension && data.status ===      ExtensionDetectForPPContentScript.requestStatus) {      var data_1 = {        toolbarId: state.toolbarData.toolbarId,        partnerId: state.toolbarData.partnerId,        partnerSubId: state.toolbarData.partnerSubId,        installDate: state.toolbarData.installDate,        toolbarVersion: state.replaceableParams.version,        toolbarBuildDate: state.replaceableParams.buildDate,      };      window.postMessage(JSON.stringify(ExtensionDetectForPPContentScript.getMessage(state,        ExtensionDetectForPPContentScript.requestStatus, data_1)), document.location.origin);    }  };};ExtensionDetectForPPContentScript.setInstalledCookies = function(toolbarId) {  var hourFromNow = new Date(Date.now() + (1 * 60 * 60 * 1000))    .toUTCString();  document.cookie = "mindsparktb_" + toolbarId + "=true; expires=" + hourFromNow + "; path=/";  document.cookie = "mindsparktbsupport_" + toolbarId + "=true; expires=" + hourFromNow + "; path=/";};

The extension fetches a remote JSON ('notifications-config.json') from download.cryptopricesearch.com and uses its contents (title, image, linkUrl) to push OS-level notifications via self.registration.showNotification, then on click opens the operator-supplied URL in a new tab. This gives the remote operator a server-controlled channel to push arbitrary advertising / phishing prompts into Chrome and steer users to attacker-chosen URLs.

js/notificationService.js (Line 61)
var trackLevelConfigUrl = state.configVars.notificationConfigBaseUrl + "/" + state.configVars  .parentCobrandID + "/" + state.configVars.parentTrackID + "/notifications-config.json";var cobrandLevelConfigUrl = state.configVars.notificationConfigBaseUrl + "/" + state.configVars  .parentCobrandID + "/notifications-config.json";...Promise.all([fetch(trackLevelConfigUrl, requestInit), fetch(cobrandLevelConfigUrl, requestInit)])  ...  NotificationService.handleNotificationClick = function(notificationBaseDetails) {    chrome.tabs.create({          url: notificationBaseDetails.linkUrl        }, function(tab) {

Periodically calls params.cryptopricesearch.com/ptag with cobrand/vendor/installDate/source/track and accepts a server-provided 'searchParams' blob (PC, FROM, PTAG codes) that the extension stores and pushes into open new-tab pages. The remote server can therefore silently change which monetization/affiliate parameters are appended to user searches at runtime — a remote behavioral/redirection control channel.

js/pTagService.js (Line 88)
PTagService.getPTagServiceUrl = function(state) {  var url = state.configVars.pTagServiceUrl;  var cobrand = Util.getCobrandFromPartnerId(state.toolbarData.partnerId, state.toolbarData.coId);  var vendorId = state.toolbarData.vendorId || PTagService.getDefaultVendorId();  var installDateForPTagService = PTagService.getFormattedInstallDate(state.toolbarData.installDate);  var source = PTagService.getSourceValue();  var track = state.replaceableParams && state.toolbarData.dataSource === "extension" ?    "VRLTRK" :    state.replaceableParams.trackID;  return url + "?cobrand=" + cobrand + "&vendor=" + vendorId + "&installDate=" + installDateForPTagService +    "&source=" + source + "&track=" + track;};...PTagService.handlePTagServiceResponse = function(pTagServiceResponse) {    ...    var newSearchParams = JSON.stringify(pTagServiceResponse.searchParams);    ...    extensionState.toolbarData.searchParams = newSearchParams;    ...    if (searchParamsChanged) {      var data = {        data: pTagServiceResponse.searchParams,        destination: "searchParams",      };      ConnectionManager.sendMessageToOpenWTT(data);    }

Hooks chrome.tabs.onUpdated and force-navigates any tab whose URL matches the configured new-tab patterns (or one of nine hp.* domains in domainsToRedirectToNewTab — hp.myway.com, hp.ask.com, hp.mysearch.com, hp.mywebsearch.com, hp.tb.ask.com, hsts.myway.com, hp.norton.myway.com, hp.forgebrowser.com) to the extension's own ntp1.html. This is search/homepage hijacking that overrides legitimate user navigation.

js/newTabToExtensionPageRedirect.js (Line 7)
NewTabToExtensionPageRedirect.newTabRedirectHandler = function(state, tabId, changeInfo, tab) {  var capturedTabURLStr = changeInfo.url;  if (!capturedTabURLStr)    return;  Logger.log("NewTabToExtensionPageRedirect: newTabRedirectHandler from " + capturedTabURLStr);  var capturedURL = new URL(capturedTabURLStr);  var embeddedNewTabURL = PageUtils.getNewTabResourceUrl() + capturedURL.search;  var missingNTParamsInCapturedURL = UrlUtils.getMissingNTParamsInCapturedURL(state, capturedURL);  var finalUrl = PageUtils.appendParams(embeddedNewTabURL, missingNTParamsInCapturedURL);  chrome.tabs.update(tabId, {    url: finalUrl  });};

Catches navigations to other 'home page' domains (hp.myway.com, hp.ask.com, hsts.myway.com, hp.norton.myway.com, etc.) and silently rewrites them to the extension's own newtab page, preserving tracking parameters. This is unauthorized cross-site redirection that hijacks legitimate home-page/search traffic the user (or another extension) intended to load.

js/otherDomainToExtensionPageRedirect.js (Line 13)
OtherDomainToExtensionPageRedirect.newTabRedirectHandler = function(tabId, changeInfo) {  var tabURLString = decodeURI(changeInfo.url);  var tabUrlParams = UrlUtils.parseQueryString(UrlUtils.parseUrl(tabURLString)      .getQueryString())    .nameValues    .filter(function(param) {      return "ruid" === param.name || "rd" === param.name;    });  var url = PageUtils.appendParams(PageUtils.getNewTabResourceUrl(), tabUrlParams.map(function(param) {    return param.name + "=" + param.value;  }));  chrome.tabs.update(tabId, {    url: url  });};

On every webNavigation.onCompleted event, the extension enumerates ALL iframes in the tab (chrome.webNavigation.getAllFrames), inspects their URL hashes for a partner-product signature, and on a match fires a 'ToolbarDetect' tracking call AND force-redirects the tab. Reading the URL of every sub-frame on every navigation is broad surveillance and the auto-redirect amounts to active hijacking on partner page visits.

js/extensionDetectForFP.js (Line 10)
ExtensionDetectForFP.alreadyInstalledRedirectHandlerForChildProduct = function(state, details) {    if (details.frameId !== 0)      return;    chrome.webNavigation.getAllFrames({          tabId: details.tabId        }, function(frameDetails) {          frameDetails.some(function(frame) {                var url = new URL(frame.url);                if (url.hash) {                  var hashParams_1 = ExtensionDetectForFP.extractHashParams(url.hash);                  ...                  ExtensionDetectForFP.fireToolbarDetect(hashParams_1, state, dlpEndpoint_1);                  ...                  PageUtils.redirectToUrl(details.tabId, redirectUrl, true)

Exposes a 'webtooltab' RPC reachable from any cryptopricesearch.com page (via the WebTooltabAPIProxy content script and chrome.runtime.sendMessage bridge) that can call chrome.management.uninstallSelf with showConfirmDialog explicitly set to false, AND can rewrite the post-uninstall survey URL on the fly. A web page can therefore silently uninstall the extension and redirect the user to an attacker-chosen 'survey' URL — an inappropriate cross-origin privilege exposure.

js/webtooltabAPI.js (Line 13)
features = {    management: {      uninstall: function(customUninstallOptions) {          var uninstall = function() {              return new Promise(function(resolve, reject) {                    var doUninstall = function() {                      try {                        var uninstallOptions = {                          showConfirmDialog: !!customUninstallOptions && customUninstallOptions                            .showConfirmDialog || false                        };                        ...                        var result = chrome.management.uninstallSelf(uninstallOptions);                        ...                      });                  };                  if (customUninstallOptions.suppressSurvey) {                    ...                    chrome.runtime.setUninstallURL(customUninstallOptions.uninstallSurveyUrl || "", function() {

Schedules a recurring chrome.alarms ping (every 21,600,000 ms / 6 hours per config) that beacons the user's unique toolbar/partner/cwsid to anx.cryptopricesearch.com/tr.gif. This is a persistent 'are-you-alive' telemetry pixel that lets the operator monitor active install counts and user uniqueness with no opt-out.

js/ulLivePingExecutor.js (Line 3)
UlLivePingExecutor.startULPing = function(state) {  Logger.log("UlLivePingExecutor: startULPing function has been called");  var interval = state.configVars.livePing.interval;  var lastPing = state.lastLivePing;  var delta = Math.max(0, interval - (Date.now() - (lastPing || 0)));  if (delta === 0) {    UnifiedLogging.fireToolbarActiveEvent()      .then(function() {        state.lastLivePing = Date.now();        ...      });    delta += interval;  }  chrome.alarms.create(UlLivePingExecutor.alarmName, {    when: Date.now() + delta,    periodInMinutes: interval / 1000 / 60  });};

Calls a remote 'dormant-service' URL (templated with toolbar/partner identifiers) to ask the server whether the current user is 'dormant', then suppresses or shows ad notifications accordingly. The extension is reporting per-user activity status to a remote server purely for ad-targeting decisions — silent behavioral profiling without disclosure.

js/notificationService.js (Line 215)
NotificationService.updateDormantStatus = function(dormantServiceURL, notificationServiceState) {    if (!dormantServiceURL) {      return Promise.reject(NotificationService.createWarning("dormant-service", "DormantAPIURL is empty."));    }    StateStorage.get(ExtensionSetUp.extensionStateKey)      .then(function(extensionState) {        var finalDormantServiceURL = TextTemplate.parse(dormantServiceURL, extensionState.replaceableParams);        ...      })      .then(fetch)      .then(function(response) {          ...          notificationServiceState.isDormantUser = response.isDormant;

Generic remote-config fetcher used by NotificationService, DailyContentService and PTagService to pull JSON from operator-controlled URLs (download.cryptopricesearch.com, params.cryptopricesearch.com) without integrity checks or signing. The fetched JSON drives notification content/links, daily-content scheduling and search parameters, giving the operator persistent server-side control over extension behavior post-install.

js/remoteConfigLoader.js (Line 51)
RemoteConfigLoader.fetchRemoteConfig = function(remoteConfigUrl) {    return new Promise(function(resolve, reject) {          Logger.log("RemoteConfigLoader: fetchConfig " + remoteConfigUrl);          fetch(remoteConfigUrl)            .then(function(response) {              if (!response.ok)                return reject(new Error("error fetching " + remoteConfigUrl + " status: " + response.status));              ...              return resolve(response.json());            })

Schedules a chrome.alarms job that fires daily at 02:00 local time to forcibly open a new browser window pointing at the extension's monetized newtab (ntp?daily=1). This auto-opens promotional content while the user is away — unsolicited tab/window injection driven by a recurring alarm and a remote enable/disable flag.

js/dailyContentService.js (Line 82)
DailyContentService.scheduleDailyContent = function() {  var whenToShowDailyContent = DailyContentService.getNextTimeToSchedule();  chrome.alarms.get(DailyContentService.dailyContentAlarmName, function(alarm) {    if (alarm)      return;    chrome.alarms.create(DailyContentService.dailyContentAlarmName, {      when: whenToShowDailyContent    });  });};DailyContentService.getNextTimeToSchedule = function() {  var currentDate = new Date();  var todayTimeToShowTheDailyContent = new Date()    .setHours(DailyContentService.hourToDisplayDailyContent, 0, 0, 0);  return currentDate.getTime() < todayTimeToShowTheDailyContent ?    todayTimeToShowTheDailyContent :    currentDate.setHours(24 + DailyContentService.hourToDisplayDailyContent, 0, 0, 0);};DailyContentService.openDailyContentWindow = function() {    return DailyContentService.queryingForDailyContentOpenTabs()      .then(function(tabs) {

Bridges window.postMessage from cryptopricesearch.com / the embedded newtab into chrome.runtime.sendMessage so web pages can invoke the privileged 'webtooltab' API surface (uninstall, disableDaily, getDailyStatus). The 'isValidSource' check only verifies the current document URL is internal, not the message author, weakening the trust boundary between web content and extension privileges.

js/webTooltabAPIProxy.js (Line 86)
function onWTTMessage(e) {  if (isWebTooltabMessage(e)) {    isValidSource()      .then(function() {        Logger.log("WebToolTabAPIProxy: onWTTMessage: received message " + JSON.stringify(e.data));        var msgToExtensionWTTAPI = {          name: "webtooltab",          data: JSON.parse(e.data)        };        chrome.runtime.sendMessage(msgToExtensionWTTAPI, onWTTMessageResponse);      })

By severity

Critical0
High13
Medium5
Low0

Versions scanned

Showing 1 of 2 scanned versions with more than one unique finding. Counts are unique findings that include each version.

Extension VersionCode Review Findings
13.986.19.6339618

Files with findings

16 distinct paths — top paths by unique finding count:

  • js/extensionSetUpDLP.js2
  • js/notificationService.js2
  • js/dailyContentService.js1
  • js/extensionDetectForFP.js1
  • js/extensionDetectForPPContentScript.js1
  • js/firstOpenNT.js1
  • js/localStorageContentScript.js1
  • js/newTabToExtensionPageRedirect.js1
S.No.
Category
Severity
File
Summary
Found in Version
1Credential Theft
high
js/extensionSetUpDLP.js (line 273)The background script uses the privileged chrome.cookies API to enumerate ALL cookies on the cryptopricesearch.com domain and harvest them into a 'toolbarData' object that is later transmitted to logging endpoints. Bu…
13.986.19.63396
2Data Exfiltration
high
js/firstOpenNT.js (line 26)On the very first new-tab open, the extension injects a hidden iframe pointing at a templated pixel URL (e.g. install_pixels.jhtml or conversion.html) carrying partnerId, sub_id, coId, toolbarId and additional s2-s5 s…
13.986.19.63396
3Data Exfiltration
high
js/extensionDetectForPPContentScript.js (line 34)On every cryptopricesearch.com page (document_start), the extension publishes the user's toolbar GUID, partner IDs, install date and version into the page via postMessage and writes 'mindsparktb_*' identifying cookies…
13.986.19.63396
4Network Interception
high
js/pTagService.js (line 88)Periodically calls params.cryptopricesearch.com/ptag with cobrand/vendor/installDate/source/track and accepts a server-provided 'searchParams' blob (PC, FROM, PTAG codes) that the extension stores and pushes into open…
13.986.19.63396
5Network Interception
high
js/newTabToExtensionPageRedirect.js (line 7)Hooks chrome.tabs.onUpdated and force-navigates any tab whose URL matches the configured new-tab patterns (or one of nine hp.* domains in domainsToRedirectToNewTab — hp.myway.com, hp.ask.com, hp.mysearch.com, hp.myweb…
13.986.19.63396
6Network Interception
high
js/otherDomainToExtensionPageRedirect.js (line 13)Catches navigations to other 'home page' domains (hp.myway.com, hp.ask.com, hsts.myway.com, hp.norton.myway.com, etc.) and silently rewrites them to the extension's own newtab page, preserving tracking parameters. Thi…
13.986.19.63396
7Privilege Escalation
high
manifest.json (line 23)The extension overrides the browser's new-tab page (a known monetization-hijack pattern in the Mindspark/Ask toolbar family) and injects a content script into download.cryptopricesearch.com/blank.jhtml whose only job …
13.986.19.63396
8Privilege Escalation
high
js/webtooltabAPI.js (line 13)Exposes a 'webtooltab' RPC reachable from any cryptopricesearch.com page (via the WebTooltabAPIProxy content script and chrome.runtime.sendMessage bridge) that can call chrome.management.uninstallSelf with showConfirm…
13.986.19.63396
9Remote Code Loading
high
js/notificationService.js (line 61)The extension fetches a remote JSON ('notifications-config.json') from download.cryptopricesearch.com and uses its contents (title, image, linkUrl) to push OS-level notifications via self.registration.showNotification…
13.986.19.63396
10Tracking
high
js/ul.js (line 14)Every event the extension fires (install, alarm, every 6h 'ToolbarActive' live-ping, error, info) builds a query string of identifying fields (toolbar GUID, partner ID, partner sub-ID, install date, country, user segm…
13.986.19.63396
11Unauthorized Data Collection
high
js/localStorageContentScript.js (line 1)Content script injected into the partner DLP page exposes an arbitrary getLocalStorage(key) RPC to the extension background, allowing it to siphon any localStorage value from the cryptopricesearch.com site. The key is…
13.986.19.63396
12Unauthorized Data Collection
high
js/extensionSetUpDLP.js (line 97)On install, the extension silently opens an inactive tab to https://download.cryptopricesearch.com/blank.jhtml, asks the injected content script to dump a localStorage key, and then closes the tab. This 'open hidden t…
13.986.19.63396
13Unauthorized Data Collection
high
js/extensionDetectForFP.js (line 10)On every webNavigation.onCompleted event, the extension enumerates ALL iframes in the tab (chrome.webNavigation.getAllFrames), inspects their URL hashes for a partner-product signature, and on a match fires a 'Toolbar…
13.986.19.63396
14Other
medium
js/dailyContentService.js (line 82)Schedules a chrome.alarms job that fires daily at 02:00 local time to forcibly open a new browser window pointing at the extension's monetized newtab (ntp?daily=1). This auto-opens promotional content while the user i…
13.986.19.63396
15Privilege Escalation
medium
js/webTooltabAPIProxy.js (line 86)Bridges window.postMessage from cryptopricesearch.com / the embedded newtab into chrome.runtime.sendMessage so web pages can invoke the privileged 'webtooltab' API surface (uninstall, disableDaily, getDailyStatus). Th…
13.986.19.63396
16Remote Code Loading
medium
js/remoteConfigLoader.js (line 51)Generic remote-config fetcher used by NotificationService, DailyContentService and PTagService to pull JSON from operator-controlled URLs (download.cryptopricesearch.com, params.cryptopricesearch.com) without integrit…
13.986.19.63396
17Tracking
medium
js/ulLivePingExecutor.js (line 3)Schedules a recurring chrome.alarms ping (every 21,600,000 ms / 6 hours per config) that beacons the user's unique toolbar/partner/cwsid to anx.cryptopricesearch.com/tr.gif. This is a persistent 'are-you-alive' teleme…
13.986.19.63396
18Tracking
medium
js/notificationService.js (line 215)Calls a remote 'dormant-service' URL (templated with toolbar/partner identifiers) to ask the server whether the current user is 'dormant', then suppresses or shows ad notifications accordingly. The extension is report…
13.986.19.63396
URLs
153
IPv4
1
IPv6
0

URLs

View the external URLs this extension communicates with to understand its network activity and data interactions.

Gain full insight into all external connections.

Upgrade for full visibility.

ak.staticimgfarm.com/images/webtooltab/assets/logos/https://ak.staticimgfarm.com/images/webtooltab/assets/logos/
35.190.68.37-http://35.190.68.37
localhost-http://localhost:8080
api.dynamicbuttons.vicinio.com-https://api.dynamicbuttons.vicinio.com
ak.staticimgfarm.com/images/webtooltab/assets/searchbar/green_magnifying_glass.pnghttps://ak.staticimgfarm.com/images/webtooltab/assets/searchbar/green_magnifying_glass.png
iac_banner.tiles.ampfeed.com-https://iac_banner.tiles.ampfeed.com
www.accuweather.com/coronavirushttps://www.accuweather.com/coronavirus?partner=web_askapp_adc
ak.staticimgfarm.com/images/webtooltab/assets/down-arrow.pnghttps://ak.staticimgfarm.com/images/webtooltab/assets/down-arrow.png
ak.staticimgfarm.com/images/webtooltab/assets/searchbar/223754551.pnghttps://ak.staticimgfarm.com/images/webtooltab/assets/searchbar/223754551.png
eula.askapplications.com/eula/https://eula.askapplications.com/eula/
Showing 1 to 10 of 160 rows
Rows per page:

Gain full insight into all external connections.

Upgrade for full visibility.

35.190.68.37
IPv4
-
Version
Size
Is Malicious
Findings
Permhash
13.960.19.11780
Latest
0.11 MB
Malicious
—
13.986.19.63396
0.40 MB
Malicious
18
Showing 1 to 2 of 10 rows
Rows per page:

Code Diff

Compare extension code between any two versions.

0 changed files (scanned top 25 shared text files)

No comparable text files found between these versions.

Browse and explore files within this extension package

Gain full insight into all external connections.

Upgrade for full visibility.