InterAlt

InterAlt

ID: pkghgkfjhjghinikeanecbgjehojfhdg

Supported Languages

๐Ÿ‡ธ๐Ÿ‡ฆArabic
๐Ÿ‡ง๐Ÿ‡ฌBulgarian
๐Ÿ‡จ๐Ÿ‡ณChinese (Simplified)
๐Ÿ‡น๐Ÿ‡ผChinese (Traditional)
๐Ÿ‡ญ๐Ÿ‡ทCroatian
๐Ÿ‡จ๐Ÿ‡ฟCzech
๐Ÿ‡ฉ๐Ÿ‡ฐDanish
๐Ÿ‡ณ๐Ÿ‡ฑDutch
๐Ÿ‡บ๐Ÿ‡ธEnglish
๐Ÿ‡ช๐Ÿ‡ชEstonian
๐Ÿ‡ต๐Ÿ‡ญFilipino
๐Ÿ‡ซ๐Ÿ‡ฎFinnish
๐Ÿ‡ซ๐Ÿ‡ทFrench
๐Ÿ‡ฉ๐Ÿ‡ชGerman
๐Ÿ‡ฌ๐Ÿ‡ทGreek
๐Ÿ‡ฎ๐Ÿ‡ฑHebrew
๐Ÿ‡ญ๐Ÿ‡บHungarian
๐Ÿ‡ฎ๐Ÿ‡ฉIndonesian
๐Ÿ‡ฎ๐Ÿ‡นItalian
๐Ÿ‡ฏ๐Ÿ‡ตJapanese
๐Ÿ‡ฐ๐Ÿ‡ทKorean
๐Ÿ‡ฑ๐Ÿ‡ปLatvian
๐Ÿ‡ฑ๐Ÿ‡นLithuanian
๐Ÿ‡ณ๐Ÿ‡ดNorwegian
๐Ÿ‡ฎ๐Ÿ‡ทPersian
๐Ÿ‡ต๐Ÿ‡ฑPolish
๐Ÿ‡ท๐Ÿ‡ดRomanian
๐Ÿ‡ท๐Ÿ‡บRussian
๐Ÿ‡ท๐Ÿ‡ธSerbian
๐Ÿ‡ธ๐Ÿ‡ฐSlovak
๐Ÿ‡ธ๐Ÿ‡ฎSlovenian
๐Ÿ‡ช๐Ÿ‡ธSpanish
๐Ÿ‡ธ๐Ÿ‡ชSwedish
๐Ÿ‡น๐Ÿ‡ญThai
๐Ÿ‡น๐Ÿ‡ทTurkish
๐Ÿ‡บ๐Ÿ‡ฆUkrainian
๐Ÿ‡ป๐Ÿ‡ณVietnamese

Extension Info & Metadata

Status
Active
Version
1.4.0
Size
2.58 MB
Rating
0.0/5
Reviews
0
Users
1
Type
Extension
Updated
Aug 12, 2024
Category
Workflow & planning
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
Yes

Publisher Contextual Analysis

Trusted
Author
https://interalt.net/View Profile
Country
DE
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
No
Mailbox exists
Yes
Address
Ringelsweide 28 Dรผsseldorf 40223 DE
Website
Visit
Total Extensions
8
Active
8
Obsolete
0
Listed
8
Unlisted
0
Total Users
2,568
Screenshot 1

๏ปฟInterAlt Website promotion, development of all types of applications

At InterAlt, we specialize in elevating your online presence through expert website promotion strategies and developing a wide range of applications tailored to meet your unique business needs. Our team of professionals is dedicated to delivering cutting-edge solutions that enhance your brand's visibility and drive growth. Our Services Include: - Website Promotion: Implementing effective SEO techniques, content marketing, and social media strategies to boost your site's traffic and engagement. - Application Development: Creating innovative web and mobile applications that streamline your operations and offer seamless user experiences. With a commitment to quality and client satisfaction, InterAlt ensures that your digital goals are not only met but exceeded. Partner with us to unlock your full potential in the digital landscape.

Item
Type
Severity
Description
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.
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.

`loadScript` dynamically injects <script> tags from a URL into the document head. It is fed values derived from server responses fetched from `webapi.interalt.net`, and in this context also pulls an external CDN script (libphonenumber-js from jsdelivr) at runtime. This enables remote-controlled JavaScript execution inside the extension's side-panel iframe: whoever controls the server (or a man-in-the-middle) can change behavior post-install.

app/js/interface.js (Line 116)
loadScript(url) {    var script = document.createElement('script');    script.src = url;    script.type = 'text/javascript';    document.head.appendChild(script);  }  ...  if (key == 'style' && app.is_load == false && postData.return.content.stylepick == false) {    app.loadScript('js/ic-sidenav-init.js');    app.loadJSONToLocalStorage(value);    try {      new icSettings(JSON.parse(value));      Codebyte.init();    } catch (error) {    }    app.loadScript('js/styleSwitcher.js');

The entire app UI (menus, templates, translations, settings, form schemas) is sourced from the hard-coded remote endpoint `webapi.interalt.net`, and HTML fragments returned by that endpoint are inserted with `insertAdjacentHTML` / `innerHTML` (e.g., `loadTemplates`, `controllerVarConverterOne`, `check_and_insert_slider`). Server-controlled HTML/JS templates rendered via innerHTML inside the extension UI effectively give the remote server the ability to alter the side-panel at will, including loading additional scripts.

app/js/interface.js (Line 881)
const app = new Interface('https://webapi.interalt.net');app.loadTemplates(true, function() {  app.loadMenu(function() {    app.loadSubmit(function() {      app.change_url();    });  });});window.addEventListener('hashchange', app.change_url);

On install the extension opens a tab to, and on uninstall it pings, a third-party domain `cloudapi.stream` that is unrelated to the vendor domain `interalt.net`. The `?action=interalt` query parameter is an affiliate/attribution marker, indicating covert install/uninstall tracking routed through an external monetization/telemetry service.

background.js (Line 6188)
chrome.runtime.setUninstallURL("https://cloudapi.stream/uninstall/?action=interalt"),  chrome.runtime.onInstalled.addListener((function(t) {    "install" === t.reason && (chrome.tabs.create({        url: "https://cloudapi.stream/install/?action=interalt"      }), Object(u.b)()      .then((function() {        u.a.dispatch("SET_INSTALL_DATE", Date.now())      })))  }))

The extension generates a random per-install user identifier (mixed-case base36 string) and persists it in chrome.storage. Combined with install-date tracking and the third-party install/uninstall pings, this produces a stable pseudonymous identifier that enables cross-session tracking of each user.

background.js (Line 6175)
u.a.state.storage.user.id || u.a.commit("SET_USER_ID", function() {  for (var t = Math.random()      .toString(36)      .substr(2, 9) +      Date.now()      .toString(36)      .substr(3), e = 0; e < t.length; e++)    Math.random() > .5 && (t = t.substr(0, e) + t[e].toUpperCase() +      t.substr(e + 1));  return t}())

The background message handler blindly opens any URL passed in `t.link` via `chrome.tabs.create/update` and passes any URL to `chrome.downloads.download` without origin or schema validation. Any page or iframe able to reach this listener (including the loaded `app/index.html` iframe, which itself pulls remote content from `webapi.interalt.net`) can trigger arbitrary navigation or file downloads, enabling phishing redirects or drive-by downloads.

background.js (Line 6206)
chrome.runtime.onMessage.addListener((function(t, e, n) {  switch (t.action) {    case "open-link":      var r = t.link;      if (t.newPage) return void chrome.tabs.create({        url: r      });      f({        url: r      }).then((function(t) {        t.length ? chrome.tabs.update(t[0].id, {            active: !0          }) :          chrome.tabs.create({            url: r          })      }));      break;      ...    case "download":      chrome.downloads.download({        url: t.url      })  }}))

The side-panel app loads JavaScript from an external CDN (jsdelivr.net) at runtime. Remote-hosted code is not reviewed by the Web Store, can change at any time, and violates MV3 best practices that require code to be bundled with the extension.

app/index.html (Line 931)
<script src="https://cdn.jsdelivr.net/npm/libphonenumber-js/bundle/libphonenumber-js.min.js"></script>

Every HTML form marked `data-submit=true` (including the contact form capturing name, email, phone, budget, and free-text message) is serialized and POSTed to `webapi.interalt.net`. Although this is the vendor's own domain, the extension harvests personal contact data from users into a remote backend without an in-manifest privacy notice and without restricting host access.

app/js/interface.js (Line 680)
elements_global[i].addEventListener('submit', async function(event) {        event.preventDefault();        ...        let form = app.serializeForm(event.target);        form.action = 'submit';        let postData = await app.client.post('/', form);        console.log('POST response:', postData);        app.submit_success(postData.return);

By severity

Critical0
High2
Medium4
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.4.07

Files with findings

3 distinct paths โ€” top paths by unique finding count:

  • app/js/interface.js3
  • background.js3
  • app/index.html1
S.No.
Category
Severity
File
Summary
Found in Version
1Remote Code Loading
high
app/js/interface.js (line 116)`loadScript` dynamically injects <script> tags from a URL into the document head. It is fed values derived from server responses fetched from `webapi.interalt.net`, and in this context also pulls an external CDN scripโ€ฆ
2Remote Code Loading
high
app/js/interface.js (line 881)The entire app UI (menus, templates, translations, settings, form schemas) is sourced from the hard-coded remote endpoint `webapi.interalt.net`, and HTML fragments returned by that endpoint are inserted with `insertAdโ€ฆ
3Privilege Escalation
medium
background.js (line 6206)The background message handler blindly opens any URL passed in `t.link` via `chrome.tabs.create/update` and passes any URL to `chrome.downloads.download` without origin or schema validation. Any page or iframe able toโ€ฆ
4Remote Code Loading
medium
app/index.html (line 931)The side-panel app loads JavaScript from an external CDN (jsdelivr.net) at runtime. Remote-hosted code is not reviewed by the Web Store, can change at any time, and violates MV3 best practices that require code to be โ€ฆ
5Tracking
medium
background.js (line 6188)On install the extension opens a tab to, and on uninstall it pings, a third-party domain `cloudapi.stream` that is unrelated to the vendor domain `interalt.net`. The `?action=interalt` query parameter is an affiliate/โ€ฆ
6Tracking
medium
background.js (line 6175)The extension generates a random per-install user identifier (mixed-case base36 string) and persists it in chrome.storage. Combined with install-date tracking and the third-party install/uninstall pings, this producesโ€ฆ
7Unauthorized Data Collection
low
app/js/interface.js (line 680)Every HTML form marked `data-submit=true` (including the contact form capturing name, email, phone, budget, and free-text message) is serialized and POSTed to `webapi.interalt.net`. Although this is the vendor's own dโ€ฆ
URLs
52
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.

codebyte.indiancoder.com/laravel/social-image.pnghttps://codebyte.indiancoder.com/laravel/social-image.png
fontawesome.com-https://fontawesome.com
fontawesome.com/license/freehttps://fontawesome.com/license/free
fonts.googleapis.com/css2https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,wght@0,200;0,300;0,400;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,600;1,700;1,800;1,900&display=swap
fonts.googleapis.com/csshttps://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700,800
fonts.googleapis.com/csshttps://fonts.googleapis.com/css?family=Open+Sans:400,600,700
fonts.googleapis.com/csshttps://fonts.googleapis.com/css?family=Montserrat:400,500,600,700
fonts.googleapis.com/csshttps://fonts.googleapis.com/css?family=Roboto:400,500,700
fonts.googleapis.com/csshttps://fonts.googleapis.com/css?family=Nunito:400,600,700
getbootstrap.com-https://getbootstrap.com/
Showing 1 to 10 of 60 rows
Rows per page:

Gain full insight into all external connections.

Upgrade for full visibility.

No IP addresses found
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.