Is Hustle safe?

Medium risk

Hustle sends each keystroke typed into its new-tab search box to hustletab.io for autocomplete suggestions.

Hustle replaces the browser's new tab page with a search box. As you type a query, every keystroke is forwarded to hustletab.io to fetch live autocomplete suggestions, with no debounce, so partial queries leave the browser one character at a time. When a search is submitted, the query is routed through search.hustletab.io along with a persistent per-user identifier and install-week tracking parameters before the tab is redirected.

hustletab.iov1.0.4Chrome Web Store
46Risk

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

Publishers can request a review.

Findings

New-tab search box sends each keystroke to hustletab.io

MediumunwantedCWE-359Dynamic sandbox

Hustle replaces your new-tab page with its own search box.

What actually happens

You did this

You type a query into the new-tab search box.

Each character you enter raises an input event on the search field.

The extension did this

The extension sends the text typed so far to hustletab.io to fetch suggestions.

A GET request to hustletab.io/ff/suggest_ch.php carries the partial query in its query string, fired once per keystroke.

Captured request

GEThttps://hustletab.io/ff/suggest_ch.php?query=canarysearch123

JSON array of autocomplete suggestion strings rendered below the search box.

The code that does this

The search input handler calls the suggestion fetch on every keystroke

Readable version

onInput handler reads the field value and calls j(t) on every input event

static/js/main.e70cf306.js (~line 34864)
onInput: function (e) {  var t = e.target.value;  a(t);   // update the visible input state  j(t);   // fetch suggestions for the partial query}

j(t) sends the partial query to hustletab.io and renders the JSON response

static/js/main.e70cf306.js (~line 34786)
var j = function (t) {  // no debounce — fires on each keystroke  return fetch(    "https://hustletab.io/ff/suggest_ch.php?query=" + (t != null ? t : "")  )  .then(function (r) { return r.json(); })  .then(function (suggestions) { /* render suggestions */ });};

What is sent to hustletab.io as you type

  • Partial search text
    query=che (then chea, cheap, cheap+f, ...)

    The characters you have typed into the new-tab search box so far. Accumulates one character per request until you finish typing.

  • Destination host
    hustletab.io

    The vendor's own first-party domain that receives the partial query and returns suggestions.

What it can do

Permissions this extension asks for, as declared in version 1.0.4. 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 hustletab.io

    *://hustletab.io/*

  • Read and change your data on api.weatherapi.com

    https://api.weatherapi.com/v1/

  • Store data in your browser

    storage

  • Read and change your bookmarks

    bookmarks

  • Read and change your full browsing history

    history

  • Run searches with your default search engine

    search

Where it sends data

Destinations our analysis observed Hustle 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.

  • hustletab.io

    Hustle sends data to hustletab.io. No other extension we have analyzed sends data here.

  • search.hustletab.io

    Hustle sends data to search.hustletab.io. No other extension we have analyzed sends data here.

Updated 21 September 2026jghglmoeijfndmbpajblhkdnchjngpeg