Is Bright Tab safe?

Medium risk

Bright Tab routes every new-tab search query through its own server with a persistent user ID and a server-assigned secret token.

When installed, Bright Tab contacts bright-tab.com to obtain a secret token and a user identifier, which are stored locally alongside a device-generated UUID. Every subsequent search typed in a new tab is transmitted to bright-tab.com as a URL parameter bundle that includes the search query, the UUID, the secret, and browser metadata, linking the full search history to a stable per-user profile on the vendor's server.

coryatkinson56v1.7Chrome Web Store
45Risk
Who publishes it

coryatkinson56 - no other listings under this identity

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

Publisher
coryatkinson56

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

Publishers can request a review.

Findings

Bright Tab links new-tab searches to persistent IDs

MediumunwantedCWE-359Dynamic sandbox

Searching from Bright Tab's new-tab page sends the terms to bright-tab.com in a GET URL that also carries a user UUID, a server token, theme code, browser version, and a stored utm_uid value, confirmed by dynamic analysis.

What actually happens

You did this

You submit a search from Bright Tab's replacement new-tab page.

Pressing Enter or clicking the search button calls the same search path.

The extension did this

The extension sends the search to bright-tab.com with persistent identifiers attached.

The request includes the typed query, a user UUID, a server-assigned token, and utm_uid.

Fields attached to the search request

  • Search terms
    weather radar

    This is the text you typed into the new-tab search box. It can include personal, work, or internal terms if you search for them there.

  • Persistent user ID
    7a24b0de-0f43-4b64-a9c5-2f6d90c3e812

    This lets repeated searches from the same browser be tied together over time.

  • Server token
    redacted server token

    This is a server-assigned value stored by the extension and sent with later searches.

  • Attribution ID
    3481609274

    This adds another stable value that can group searches or installs in the vendor's system.

  • Browser context
    b=chrome&bv=126&themeIndex=102

    This records that the request came from Chrome and includes the browser version used by your browser.

Captured request

GEThttps://bright-tab.com/ch/search.php?q=weather%20radar&uid=7a24b0de-0f43-4b64-a9c5-2f6d90c3e812&rnd=1&themeIndex=102&b=chrome&bv=126&secret=<redacted>&source=1&utm_uid=3481609274

Navigation request to the vendor search endpoint; no request body is used for the search.

The code that does this

Install identifiers are stored, read on the new-tab page, and appended to each search.

Readable version

Install request stores the server token and utm_uid

bg.js
function fireInstallPixel(userId) {    const url = "https://" + SEARCH_DOMAIN + "/ch/install.php";    let parameters = {        uid: userId,        b: "chrome",        extension: EXTENSION,        theme_index: EXTENSION_CODE    };    let formBody = [];    for (let property in parameters) {        let encodedKey = encodeURIComponent(property);        let encodedValue = encodeURIComponent(parameters[property]);        formBody.push(encodedKey + "=" + encodedValue);    }    formBody = formBody.join("&");    fetch(url, {        method: "POST",         body: formBody,        headers: {            'Content-Type': 'application/x-www-form-urlencoded',          },    }).then(res => {        return res.json()    }).then(data => {        SECRET = data["ch"];        utm_uid = data["utm_uid"];        chrome.storage.local.set({ secret: SECRET, utm_uid: utm_uid });        let ty_page =        "https://" +        SEARCH_DOMAIN +        "/ch/ty.php?uid=" +        utm_uid +        "&ch=" +        SECRET;        chrome.tabs.create({            url: ty_page,        });    }).catch(error => {        console.log(error);    });}

The new-tab page reloads identifiers from extension storage

lib/newTab.js
window.addEventListener("load", function () {  chrome.storage.local.get(    [      "secret",      "userId",      "utm_uid",      "installation_week",      "installation_year",      "reset_time",    ],    function (items) {      const { reset_time: resetTime } = items;      if (items.userId !== undefined) {        USER_ID = items.userId;      }      if (items.secret !== undefined) {        SECRET = items.secret;      }      if (items.utm_uid !== undefined) {        utm_uid = items.utm_uid;      }      if (items.installation_week !== undefined) {        installation_week = items.installation_week;      }      if (items.installation_year !== undefined) {        installation_year = items.installation_year;      }    }  );});

startSearch appends the identifiers to the search navigation

lib/newTab.js
function startSearch() {    let query = $("#SearchBar").val().trim();    if (query.length === 0) {        return;    }    let queryStringObject = {        uid: USER_ID,        rnd: 1,        themeIndex : 102,        b: "chrome",        bv: ffVersion,        secret: SECRET,        source: 1,        utm_uid: utm_uid,    };    // if (query !== undefined && query !== null)    //     queryStringObject["q"] = query;    let obj = new URLSearchParams(queryStringObject).toString();        window.location="https://bright-tab.com/ch/search.php?q="+query + "&" + obj;}

Enter and click actions call the same search function

lib/newTab.js
function OpenSearchResult(searchQuery) {    startSearch(searchQuery);}

External destination for the search data

    • bright-tab.com

    Receives the install request that returns the server token and utm_uid, then receives new-tab search requests containing q, uid, the token parameter, and utm_uid.

What it can do

Permissions this extension asks for, as declared in version 1.7. 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 bright-tab.com

    *://bright-tab.com/*

  • Store data in your browser

    storage

  • See the address and title of every tab you have open

    tabs

Where it sends data

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

  • bright-tab.com

    Bright Tab sends data to bright-tab.com. No other extension we have analyzed sends data here.

Updated 30 September 2026kkpnlekgnlpcagkhdhlellaijomcjjbe