Tableau Bridge Config Helper

Tableau Bridge Config Helper

ID: pnghcjanlljbmedmaiapiipbmagpmlam

Extension Info & Metadata

Status
Active
Version
1.2
Size
0.09 MB
Rating
5.0/5
Reviews
4
Users
150
Type
Extension
Updated
Dec 10, 2024
Category
Developer tools
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
No

Publisher Contextual Analysis

Author
FortunaSwap TeamView Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
Yes
Mailbox exists
Yes
Website
Visit
Total Extensions
2
Active
1
Obsolete
1
Listed
2
Unlisted
0
Total Users
163
Screenshot 1

Collect information needed to configure Tableau Bridge Linux agents and download as a yaml file.

The extension is to generate secret keys for tableau users.

Item
Type
Severity
Description
webRequest
Permission
Critical
This permission enables the extension to monitor and analyze all web requests made by the browser. Rated Critical because it can observe all network traffic including sensitive data, track browsing behavior, and gather authentication tokens.
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.
*://*.online.tableau.com/*
Host
Medium
Host permission — access limited to this URL pattern.
sidePanel
Permission
Low
This permission adds custom panels to the browser interface. Rated Low because it only affects browser UI elements and cannot access page content.

The background service worker silently intercepts and persists the x-xsrf-token CSRF credential from every Tableau Cloud request to chrome.storage.local. While this token is later used to call the Tableau PAT API, the act of capturing and storing session-level security tokens in extension storage is itself a credential interception risk — particularly for an extension whose publisher (FortunaSwap Team, a DeFi platform) has a 100% malware rate across its other published extensions. Any future update could exfiltrate this stored token without the user's knowledge.

assets/chunk-17801cfe.js (Line 39)
let a = "";chrome.webRequest.onBeforeSendHeaders.addListener(r => {  var t, s;  const e = (s = (t = r.requestHeaders) == null ? void 0 : t.find(o => o.name === "x-xsrf-token")) == null ?    void 0 : s.value;  return e && e !== a && (a = e, console.log("New CSRF Token: ", e), u.setItem(c.CSRF_TOKEN, e)), {    requestHeaders: r.requestHeaders  }}, {  urls: ["https://*.online.tableau.com/*"]}, ["requestHeaders"]);

The content script uses the captured CSRF token to programmatically create Tableau Personal Access Tokens (PATs), collecting the resulting refreshToken values — long-lived credentials that authenticate API access to the Tableau Cloud site. In the current version these tokens are only downloaded locally as a YAML file, but the infrastructure to harvest an arbitrary number of Tableau auth credentials on behalf of any user navigating to online.tableau.com is fully in place. Combined with a publisher whose sole other extension is flagged malicious and who impersonates Tableau's own privacy policy, this credential creation pipeline represents a high-severity risk of future exfiltration.

assets/chunk-453372f6.js (Line 15)
const T = async e => {  const s = await l.getItem(i.CSRF_TOKEN);  if (!s) {    console.log("CSRF token not found");    return  }  const o = [];  for (let t = 0; t < e.numberOfTokens; t++) {    const r = `${e.tokenPrefix}-${t+1}`;    try {      const c = await (await fetch(`https://${p}/vizportal/api/web/v1/createPersonalAccessToken`, {        method: "POST",        headers: {          Accept: "application/json, text/plain, */*",          "x-xsrf-token": s        },        body: JSON.stringify({          method: "createPersonalAccessToken",          params: {            clientId: r          }        })      })).json();      o.push({        name: r,        secret: c.result.refreshToken      })    } catch (n) {      console.error("Get PAT Tableau error"), console.error(n);      o.push({        name: r,        secret: ""      })    }  }  chrome.runtime.sendMessage({    type: a.RESPONSE_GET_PAT_TABLEAU,    data: o  })};

By severity

Critical0
High2
Medium0
Low0

Versions scanned

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

Extension VersionCode Review Findings
1.22

Files with findings

2 distinct paths — top paths by unique finding count:

  • assets/chunk-17801cfe.js1
  • assets/chunk-453372f6.js1
S.No.
Category
Severity
File
Summary
Found in Version
1Credential Theft
high
assets/chunk-17801cfe.js (line 39)The background service worker silently intercepts and persists the x-xsrf-token CSRF credential from every Tableau Cloud request to chrome.storage.local. While this token is later used to call the Tableau PAT API, the…
2Credential Theft
high
assets/chunk-453372f6.js (line 15)The content script uses the captured CSRF token to programmatically create Tableau Personal Access Tokens (PATs), collecting the resulting refreshToken values — long-lived credentials that authenticate API access to t…
URLs
14
IPv4
0
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.

reactjs.org/docs/error-decoder.htmlhttps://reactjs.org/docs/error-decoder.html?invariant=
www.w3.org/1999/xlinkhttp://www.w3.org/1999/xlink
www.w3.org/XML/1998/namespacehttp://www.w3.org/XML/1998/namespace
www.w3.org/2000/svghttp://www.w3.org/2000/svg
www.w3.org/1998/Math/MathMLhttp://www.w3.org/1998/Math/MathML
www.w3.org/1999/xhtmlhttp://www.w3.org/1999/xhtml
github.com/nodeca/js-yamlhttps://github.com/nodeca/js-yaml
online.tableau.com-https://online.tableau.com
*.online.tableau.com/*https://*.online.tableau.com/*
${p}/vizportal/api/web/v1/createPersonalAccessToken%60,%7Bmethod:https://${p}/vizportal/api/web/v1/createPersonalAccessToken`,{method:
Showing 1 to 10 of 20 rows
Rows per page:

Gain full insight into all external connections.

Upgrade for full visibility.

No IP addresses found
Version
Size
Is Malicious
Findings
Permhash
1.2
Latest
0.09 MB
Malicious
2
Showing 1 to 1 of 10 rows
Rows per page:

Browse and explore files within this extension package

Gain full insight into all external connections.

Upgrade for full visibility.