eTab

ID: idnfpcpfaamcjidcakmafaffmepnkhle

Could be malicious

Supported Languages

🇺🇸English

Extension Info & Metadata

Status
Removed
Version
1.3
Size
0.23 MB
Rating
4.4/5
Reviews
9
Users
7,787
Type
Extension
Updated
Sep 10, 2023
Category
28_photos
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
Yes

Publisher Contextual Analysis

Trusted
Author
Locksley LtdView Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
Yes
Mailbox exists
Yes
Website
Visit
Total Extensions
5
Active
1
Obsolete
4
Listed
5
Unlisted
0
Total Users
21,441

An extension that will provide you with a motivating picture whenever you open a new tab in your browser.

Looking for a way to spruce up your browsing experience? Look no further than this fantastic extension! With just a quick installation, you can enjoy beautiful, high-quality images every time you open a new tab in your web browser. Whether you're searching for inspiration, taking a quick break from work, or simply looking to add some visual interest to your daily routine, this extension is the perfect way to enhance your browsing experience. So why wait? Install now and start enjoying stunning, eye-catching images every time you open a new tab! To change the background image click the Change Background Icon in the top right on new tab. Search results are provided by Microsoft Bing. Privacy Policy: https://etab-extension.com/privacy-policy Terms of Use: https://etab-extension.com/terms-and-conditions

Item
Type
Severity
Description
Contextual Risk Factors
Risk Factor
High
The following context increases the overall risk:• 20% increase: Access to sensitive domains increases potential impact
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.
unlimitedStorage
Permission
Medium
This permission removes storage quota restrictions. Rated Medium because it can store large amounts of user data without limits, potentially impacting browser performance and storing extensive tracking data.
https://api.bing.com/*
Host
Medium
Host permission — access limited to this URL pattern.
*://etabextension.com/*
Host
Medium
Host permission — access limited to this URL pattern.
Access to Sensitive Domains
Risk Factor
Medium
This extension requests access to sensitive domains: https://api.bing.com/*, https://api.bing.com/*
alarms
Permission
Low
This permission schedules periodic tasks. Rated Low because it can only trigger events at specified times without access to sensitive data.

The extension polls https://etabextension.com/config every minute (via a chrome.alarm) and downloads a remote JSON manifest of images/videos/animations. Any entry flagged 'featured' by the remote server overrides the user's chosen wallpaper for a server-controlled duration ('featuredInterval'), giving the publisher a remote channel to push arbitrary visual content (including 'video' assets and overlay copy) onto the new-tab page after install, with no user opt-in.

1.bundle.js (Line 19)
async function l(e) {    const t = await r.a.get(["currentImage", "imageData", "lastFeatured"]),      a = await fetch(`${o.BASE_URL}config?t=${Date.now()}`),      n = await a.json();    r.a.set({      config: n    });    const l = [];    n.animations.forEach(e => {        l.push({          ...e,          type: "animation"        })      }),      n.videos.forEach(e => {        l.push({          ...e,          type: "video"        })      }),      n.images.forEach(e => {        l.push({          ...e,          type: "image"        })      });    const f = l.filter(e => e.featured),      d = f.filter(e => -1 === t.lastFeatured.indexOf(e.id)),      m = f.map(e => e.id);    if (r.a.set({        lastFeatured: m      }), t.currentImage && d[0] && !e) {      const e = d[0];      Object(i.getFile)(e.id)        .then(t => t || Object(i.saveFile)(e.id, e.full))        .then(a => {          r.a.set({              revertFeatured: {                id: t.currentImage,                timestamp: Date.now() + 1e3 * e.featuredInterval              }            }),            s(e.id)        })    }

The new-tab page contains a dedicated full-viewport <video id="ad-player"> element plus a hidden overlay with a headline and 'cta' (call-to-action) span. Combined with the remotely fetched config that supplies videos and 'featured' assets, this is undisclosed advertising/promotional injection — the store description says the extension only shows 'a motivating picture', not autoplay video ads with click-through CTAs sourced from a publisher-controlled server.

newtab.html (Line 76)
<div class="video-wrapper static"><video id="background" autoplay="autoplay" loop="loop"></video></div><div class="video-wrapper static"><video id="ad-player" autoplay="autoplay"></video></div><div id="overlay" style="display:none">  <div id="overlay-icon-container">    <img src="...">  </div>  <div id="overlay-body">    <span id="overlay-headline"></span>    <span id="cta"></span>  </div></div>

On extension install, the service worker silently calls https://etabextension.com/install.php with same-origin credentials. This is an undisclosed install-tracking beacon used to count/identify newly installed users without notice or consent, and the use of credentials means any cookie set by the publisher's domain (e.g. via the bundled new-tab page) is sent along, enabling cross-context user tracking.

background.bundle.js (Line 71)
chrome.runtime.onInstalled.addListener(({  reason: e}) => {  "install" === e && fetch(r.BASE_URL + "install.php", {    credentials: "same-origin"  })})

A persistent alarm re-pulls the remote etabextension.com config every minute for the lifetime of the install. This high-frequency callback to a publisher-controlled endpoint is consistent with a beacon/heartbeat that keeps the extension reachable for content swaps and is more aggressive than is needed for refreshing a 'motivating picture' new-tab background.

1.bundle.js (Line 77)
chrome.alarms.get("refresh-config", e => {  e || chrome.alarms.create("refresh-config", {    periodInMinutes: 1  })}), chrome.alarms.onAlarm.addListener(({  name: e}) => {  "refresh-config" === e && l()})

By severity

Critical0
High2
Medium2
Low0

Versions scanned

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

Extension VersionCode Review Findings
1.34

Files with findings

3 distinct paths — top paths by unique finding count:

  • 1.bundle.js2
  • background.bundle.js1
  • newtab.html1
S.No.
Category
Severity
File
Summary
Found in Version
1Other
high
newtab.html (line 76)The new-tab page contains a dedicated full-viewport <video id="ad-player"> element plus a hidden overlay with a headline and 'cta' (call-to-action) span. Combined with the remotely fetched config that supplies videos …
2Remote Code Loading
high
1.bundle.js (line 19)The extension polls https://etabextension.com/config every minute (via a chrome.alarm) and downloads a remote JSON manifest of images/videos/animations. Any entry flagged 'featured' by the remote server overrides the …
3Tracking
medium
background.bundle.js (line 71)On extension install, the service worker silently calls https://etabextension.com/install.php with same-origin credentials. This is an undisclosed install-tracking beacon used to count/identify newly installed users w…
4Tracking
medium
1.bundle.js (line 77)A persistent alarm re-pulls the remote etabextension.com config every minute for the lifetime of the install. This high-frequency callback to a publisher-controlled endpoint is consistent with a beacon/heartbeat that …
URLs
25
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.

vuejs.org/v2/guide/reactivity.htmlhttps://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.
vuejs.org/v2/api/https://vuejs.org/v2/api/#data
www.w3.org/1999/xlinkhttp://www.w3.org/1999/xlink
www.w3.org/2000/svghttp://www.w3.org/2000/svg
www.w3.org/1998/Math/MathMLhttp://www.w3.org/1998/Math/MathML
vuejs.org/guide/deployment.htmlhttps://vuejs.org/guide/deployment.html
etabextension.com-https://etabextension.com/
etabextension.com-https://etabextension.com/?q=
github.com/webpack-contrib/style-loaderhttps://github.com/webpack-contrib/style-loader#insertat
github.com/linusborg/portal-vuehttps://github.com/linusborg/portal-vue
Showing 1 to 10 of 30 rows
Rows per page:

Gain full insight into all external connections.

Upgrade for full visibility.

No IP addresses found
Showing 1 to 5 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.