NFT Tab

NFT Tab

ID: aiahphffiolplmdllamhjpkdclmknojh

Supported Languages

🇺🇸English

Extension Info & Metadata

Status
Active
Version
1.4
Size
1.64 MB
Rating
0.0/5
Reviews
0
Users
5,000
Type
Extension
Updated
Jan 17, 2023
Category
Tools
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
Yes

Publisher Contextual Analysis

Trusted
Author
2050View Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
Yes
Mailbox exists
Yes
Website
Visit
Total Extensions
12
Active
4
Obsolete
7
Listed
12
Unlisted
0
Total Users
28,618
Screenshot 1
Screenshot 2

See currently trending NFTs in every new tab that you can browse, sort, & bookmark

NFT Tab lets you stay up to date with the most popular and trending NFTs in every new tab. See what's trending, browse new collections, and bookmark any NFTs that catch your eye. By clicking "Add to Chrome", I accept and agree to install the NFT Tab extension and set the Chrome New Tab search to that provided by the service. The search will be powered by Bing: Privacy Policy: https://2050.one/nfttabprivacy Terms of Service: https://2050.one/terms Our awesome icon was designed by Freepik: https://www.flaticon.com/free-icon/art_5802468?related_id=5802468

Item
Type
Severity
Description
*://*/*
Host
Critical
Broad host access — the extension can read/modify content on every website.
Broad Host Permissions
Risk Factor
High
This extension has broad host permissions allowing it to access many or all websites.

Values from the external NFTPort API response (`thumbnail_url`, `description`, `name`, `chain`) are concatenated directly into an HTML string and written to `innerHTML` with no sanitization or escaping. If the API endpoint is compromised or returns attacker-controlled data, this is a direct stored XSS vector executing arbitrary JavaScript in the extension's new-tab page context, which has broad host permissions over all sites.

js/custom.js (Line 30)
var imgurl = item['metadata']['thumbnail_url'];var description = item['metadata']['description'];var name = item['name'];var chain = item['chain'];var contract_address = item['contract_address'];var html = '<div class="col-md-3"><div class="box"><div class="box__img"><img src="' + imgurl +  '" alt=""></div><div class="box__text"><h4>' + name + '</h4><p class="des">' + description +  '</p><span class="chain">' + chain + '</span></div></div>';document.getElementById("Trending")  .innerHTML += html;

The extension replaces every new tab and hard-wires the search form to `https://bing.com/search`. All search queries typed by the user are submitted to Bing rather than their default search engine, which is a classic new-tab hijacker pattern used to generate search-affiliate revenue. Users' search terms are silently routed to a third-party service without disclosure or consent.

index.html (Line 89)
<form class="searchform" action="https://bing.com/search" target="_parent" method="get">  <div class="input-group mb-3" style="width: 50%; margin: auto;">    <input type="text" name="q" class="form-control" required="required">

A private NFTPort API key (`88e17fba-72ba-48b4-aaa3-82d65daf2b88`) is hardcoded in plaintext and shipped inside the extension. Any user who installs the extension can extract and abuse this credential. This constitutes an exposed secret that enables unauthorized use of a third-party paid API under the developer's account.

js/custom.js (Line 4)
var url =  "https://api.nftport.xyz/v0/contracts/top?page_size=50&page_number=1&period=24h&order_by=volume&chain=ethereum&chain=polygon&chain=ethereum";var xhr = new XMLHttpRequest();xhr.open("GET", url, true);xhr.setRequestHeader('Authorization', '88e17fba-72ba-48b4-aaa3-82d65daf2b88');xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");

The extension loads a stylesheet from an external CDN (`cdnjs.cloudflare.com`) at runtime rather than bundling the asset locally. While this particular CDN is reputable, loading remote resources from a new-tab page that has `*://*/*` host permissions means the CDN operator (or anyone who compromises it) can inject content into every new-tab page opened by the user.

index.html (Line 24)
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

On every fresh install the extension silently opens `https://2050.one/nfttabthanks` in a new tab. This notifies the operator's server of each new installation (install-count tracking / affiliate conversion signal) without any user-visible disclosure. The URL also exposes user IP and browser fingerprint to the `2050.one` domain on install.

background.js (Line 1)
chrome.runtime.onInstalled.addListener(function(object) {  try {    if (object.reason === chrome.runtime.OnInstalledReason.INSTALL) {      const postInstallURLopen = 'https://2050.one/nfttabthanks'      chrome.tabs.create({        url: postInstallURLopen      })    }  } catch (e) {    console.log(e)  }})

By severity

Critical0
High2
Medium2
Low1

Versions scanned

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

Extension VersionCode Review Findings
1.45

Files with findings

3 distinct paths — top paths by unique finding count:

  • index.html2
  • js/custom.js2
  • background.js1
S.No.
Category
Severity
File
Summary
Found in Version
1Code Injection
high
js/custom.js (line 30)Values from the external NFTPort API response (`thumbnail_url`, `description`, `name`, `chain`) are concatenated directly into an HTML string and written to `innerHTML` with no sanitization or escaping. If the API end…
2Tracking
high
index.html (line 89)The extension replaces every new tab and hard-wires the search form to `https://bing.com/search`. All search queries typed by the user are submitted to Bing rather than their default search engine, which is a classic …
3Credential Theft
medium
js/custom.js (line 4)A private NFTPort API key (`88e17fba-72ba-48b4-aaa3-82d65daf2b88`) is hardcoded in plaintext and shipped inside the extension. Any user who installs the extension can extract and abuse this credential. This constitute…
4Remote Code Loading
medium
index.html (line 24)The extension loads a stylesheet from an external CDN (`cdnjs.cloudflare.com`) at runtime rather than bundling the asset locally. While this particular CDN is reputable, loading remote resources from a new-tab page th…
5Tracking
low
background.js (line 1)On every fresh install the extension silently opens `https://2050.one/nfttabthanks` in a new tab. This notifies the operator's server of each new installation (install-count tracking / affiliate conversion signal) wit…
URLs
19
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.

2050.one/nfttabthankshttps://2050.one/nfttabthanks
getbootstrap.com-https://getbootstrap.com/
github.com/twbs/bootstrap/blob/main/LICENSEhttps://github.com/twbs/bootstrap/blob/main/LICENSE
www.w3.org/2000/svghttp://www.w3.org/2000/svg
www.w3.org/1999/02/22-rdf-syntax-nshttp://www.w3.org/1999/02/22-rdf-syntax-ns#
ns.adobe.com/xap/1.0/mm/http://ns.adobe.com/xap/1.0/mm/
ns.adobe.com/xap/1.0/sType/ResourceRefhttp://ns.adobe.com/xap/1.0/sType/ResourceRef#
ns.adobe.com/xap/1.0/http://ns.adobe.com/xap/1.0/
purl.org/dc/elements/1.1/http://purl.org/dc/elements/1.1/
ns.adobe.com/photoshop/1.0/http://ns.adobe.com/photoshop/1.0/
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
3.58 MB
Benign
—N/A
1.1
3.58 MB
Benign
—N/A
1.0
3.58 MB
Benign
—N/A
1.4
1.64 MB
Malicious
5N/A
Showing 1 to 4 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.