Subway Surfers

ID: oolehmnnaggcbnlplpccgholfbdlpbel

Could be malicious

Supported Languages

🇺🇸English

Extension Info & Metadata

Status
Removed
Version
1.0.2
Size
25.23 MB
Rating
4.0/5
Reviews
4
Users
5,000
Type
Extension
Updated
Apr 22, 2024
Category
Lifestyle Games
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
Yes

Publisher Contextual Analysis

Trusted
Author
Premium GamesView Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
No
Mailbox exists
Yes
Total Extensions
8
Active
0
Obsolete
8
Listed
8
Unlisted
0
Total Users
15,292

Email Change History

1 change
Apr 5, 2024

Subway Surfers World Tour: San Francisco. Play Subway Surfers endless runner game

Subway Surfers is an exhilarating and fast-paced endless runner game that has captivated players worldwide on mobile devices. Now, with "Subway Surfers World Tour: San Francisco" available for desktop browsers, the excitement and fun are taken to a whole new level. Here's why you'll enjoy playing this thrilling game on your desktop: - Bigger Screen, More Detail: Playing Subway Surfers on your desktop provides a larger screen experience, allowing you to appreciate the game's vibrant graphics and intricate details even more. - Precise Controls: Desktop browsers offer precise control through keyboard inputs, making it easier to navigate your character through the intricate subway landscapes of San Francisco. - Endless Running Thrills: Just like in the mobile version, you'll be challenged to run, jump, and surf across subway tracks and rooftops endlessly. The game's simple yet addictive mechanics will keep you engaged for hours. - Collectibles and Power-Ups: Collect coins and power-ups to boost your performance and score. Unlock new characters and hoverboards as you progress, adding variety and excitement to the gameplay. - San Francisco Adventure: Explore the iconic city of San Francisco as your backdrop. Dodge oncoming trains, dash through cable cars, and leap across the famous Golden Gate Bridge as you immerse yourself in this thrilling urban adventure. - Compete with Friends: Challenge your friends and fellow players to beat your high score. Subway Surfers fosters a competitive spirit, and achieving the highest score is always rewarding. In "Subway Surfers World Tour: San Francisco," you'll experience the rush of urban parkour, vibrant visuals, and heart-pounding action, all on the convenience of your desktop browser. It's the perfect way to enjoy the game's fun and challenge in a larger format. So, jump on your virtual skateboard and start running through the iconic streets of San Francisco in this thrilling endless runner adventure!

Item
Type
Severity
Description
Contextual Risk Factors
Risk Factor
High
The following context increases the overall risk:• 10% increase: Early script execution enables pre-emptive content manipulation
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.
Early Content Script Execution
Risk Factor
Medium
This extension runs content scripts at document_start.

The parent-side `setupParent()` persists intercepted cookie and localStorage data to `chrome.storage.local` (durable extension storage) and continuously re-broadcasts it to the iframe every 1000ms via `postMessage` with a wildcard target origin (`"*"`). The `message` event listeners on both sides accept messages from any origin without validation, allowing a malicious third-party page to inject fake cookie/storage data or receive exfiltrated cookie payloads if it can load the extension's game page in a cross-origin iframe.

storage.js (Line 34)
window.addEventListener("message", async function(event) {  if (!event.data) return;  if (!event.data.indexOf("cookies:")) {    COOKIE = (event.data + "")      .substring("cookies:".length);    source = event.source;  }  if (!event.data.indexOf("local:")) {    const storageStr = (event.data + "")      .substring("local:".length);    source = event.source;    if (storageStr) {      const json = JSON.parse(storageStr);      if (typeof json === "object") {        storage = json;      }    }  }  READY = true;});}function setupParent() {  const sandbox = document.getElementsByTagName("iframe")[0];  const reportChild = () => {    chrome.storage.local.get(["cookies", "local"], (e) => {      const c = e.cookies ? e.cookies : "";      sandbox.contentWindow.postMessage("cookies:" + c, "*");      const l = e.local ? e.local : "";      sandbox.contentWindow.postMessage("local:" + l, "*");    });  };  window.addEventListener("message", async function(event) {    if (!event.data) return;    if (!event.data.indexOf("set:")) {      COOKIE = (event.data + "")        .substring("set:".length);      chrome.storage.local.set({        cookies: COOKIE      });    }    if (!event.data.indexOf("setLocal:")) {      const storageStr = (event.data + "")        .substring("setLocal:".length);      chrome.storage.local.set({        local: storageStr      });    }  });  setInterval(reportChild, 1e3);  reportChild();}

The extension declares a content script (img.js) that runs on every HTTPS page the user visits (`https://*/*`) at `document_start`, the earliest possible execution point. This is entirely unnecessary for a game extension and grants covert DOM access and script execution capability across every website. No corresponding `host_permissions` entry is declared, yet MV3 content_scripts matches effectively function as host grants approved silently at install time.

manifest.json (Line 10)
{  "content_scripts": [    {      "matches": [        "https://*/*"      ],      "js": [        "img.js"      ],      "run_at": "document_start"    }  ]}

This file is injected as a content script into every HTTPS page at document_start, yet it contains a banner-ad injection framework: it fetches an ad payload (URL + image) from response object `r` and injects a fixed-position 728×90px clickable ad that navigates to an externally controlled URL. While currently gated on `r` being defined (preventing immediate execution in typical content-script context), the entire adware delivery mechanism is present and can be activated by any co-loaded script that defines `r` — including a future silent update.

img.js (Line 1)
if (document.location.hostname === chrome.runtime.id) {  function applyCss(d, styles) {    for (const [key, value] of Object.entries(styles)) d.style[key] = value;  }  setTimeout(async () => {    if (typeof r === "undefined") {      return;    }    const data = await r.json();    if (data && data.url && data.img) {      const img = document.createElement("IMG");      img.addEventListener("load", () => {        const a = document.body.appendChild(document.createElement("a"));        a.setAttribute("href", data.url);        a.style.backgroundImage = 'url("' + data.img + '")';        a.setAttribute("target", "_blank");        applyCss(a, {          position: "fixed",          bottom: "0",          left: "0",          width: "728px",          height: "90px",        });        a.classList.add("promo");      });    }  });}

The script overrides the native `document.cookie` property via `Object.defineProperty`, intercepting all cookie reads and writes within the sandboxed page. Any cookie value longer than 100 characters is captured and immediately broadcast via `postMessage` to the parent frame using a wildcard origin (`"*"`), meaning any page that has embedded this extension page in an iframe could receive the cookie payload.

storage.js (Line 1)
var COOKIE = "";var source = null;function setupSandbox() {  Object.defineProperty(document, "cookie", {    get: function() {      return COOKIE;    },    set: function(value) {      if (value && value.length > 100) {        COOKIE = value;        source && source.window.postMessage("set:" + COOKIE, "*");      }    },  });

The sandbox CSP allows `'unsafe-eval'` and `'unsafe-inline'` across every directive (script-src, object-src, child-src, worker-src, script-src-elem). This permits arbitrary dynamic code generation via `eval()`, `new Function()`, and inline `<script>` blocks within the sandboxed page, eliminating the primary XSS mitigations that CSP is meant to provide.

manifest.json (Line 21)
{  "content_security_policy": {    "sandbox": "sandbox allow-scripts allow-pointer-lock; script-src 'self' 'unsafe-eval' blob: 'unsafe-inline'; object-src 'self' 'unsafe-eval' blob: 'unsafe-inline';child-src 'self' 'unsafe-eval' blob: 'unsafe-inline' ; worker-src 'self' 'unsafe-eval' blob: 'unsafe-inline'; script-src-elem 'self' 'unsafe-eval' blob: 'unsafe-inline'"  }}

By severity

Critical1
High3
Medium1
Low0

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.0.25

Files with findings

3 distinct paths — top paths by unique finding count:

  • manifest.json2
  • storage.js2
  • img.js1
S.No.
Category
Severity
File
Summary
Found in Version
1Data Exfiltration
critical
storage.js (line 34)The parent-side `setupParent()` persists intercepted cookie and localStorage data to `chrome.storage.local` (durable extension storage) and continuously re-broadcasts it to the iframe every 1000ms via `postMessage` wi…
2Unauthorized Data Collection
high
manifest.json (line 10)The extension declares a content script (img.js) that runs on every HTTPS page the user visits (`https://*/*`) at `document_start`, the earliest possible execution point. This is entirely unnecessary for a game extens…
3Unauthorized Data Collection
high
img.js (line 1)This file is injected as a content script into every HTTPS page at document_start, yet it contains a banner-ad injection framework: it fetches an ad payload (URL + image) from response object `r` and injects a fixed-p…
4Unauthorized Data Collection
high
storage.js (line 1)The script overrides the native `document.cookie` property via `Object.defineProperty`, intercepting all cookie reads and writes within the sandboxed page. Any cookie value longer than 100 characters is captured and i…
5Code Injection
medium
manifest.json (line 21)The sandbox CSP allows `'unsafe-eval'` and `'unsafe-inline'` across every directive (script-src, object-src, child-src, worker-src, script-src-elem). This permits arbitrary dynamic code generation via `eval()`, `new F…
URLs
49
IPv4
65
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.

www.w3.org/1999/htmlhttp://www.w3.org/1999/html
www.ascendercorp.com/http://www.ascendercorp.com/typedesigners.htmlhttp://www.ascendercorp.com/typedesigners.htmlLicensedhttp://www.ascendercorp.com/http://www.ascendercorp.com/typedesigners.htmlhttp://www.ascendercorp.com/typedesigners.htmlLicensed
scripts.sil.org/OFL%EF%BF%BDhttp://scripts.sil.org/OFL�
subway.azureedge.net/subway/androidgenerated.bytesRepeatedhttp://subway.azureedge.net/subway/androidgenerated.bytesRepeated
graph.facebook.com/%7B0%7D/picturehttp://graph.facebook.com/{0}/picture?width=64&height=64FetchNextTournament:
docs.poolmanager.path-o-logical.comspawnpool-http://docs.poolmanager.path-o-logical.comSpawnPool
www.microsoft.com/xml/security/algorithm/PKCS1-v1.5-KeyExhttp://www.microsoft.com/xml/security/algorithm/PKCS1-v1.5-KeyEx
www.microsoft.com/xml/security/encryption/v1.0http://www.microsoft.com/xml/security/encryption/v1.0
schemas.microsoft.com/clr/nsassem/http://schemas.microsoft.com/clr/ns/Totalhttp://schemas.microsoft.com/clr/nsassem/http://schemas.microsoft.com/clr/ns/Total
kiloo.com/support/subway-surfers/DetachPlatformsAsync:http://kiloo.com/support/subway-surfers/DetachPlatformsAsync:
Showing 1 to 10 of 50 rows
Rows per page:

Gain full insight into all external connections.

Upgrade for full visibility.

4.0.0.0
IPv4
-
0.14.0.24
IPv4
-
0.34.0.44
IPv4
-
14.24.34.4
IPv4
-
4.14.4.24
IPv4
-
4.34.4.45
IPv4
-
2.5.29.192
IPv4
-
5.29.152.5
IPv4
-
29.142.5.29
IPv4
-
1.1.51.2
IPv4
-
1.1.41.2
IPv4
-
4.31.3.14
IPv4
-
1.1.21.2
IPv4
-
1.1.31.3
IPv4
-
1.101.2.1
IPv4
-
1.191.3.14
IPv4
-
1.101.3.4
IPv4
-
1.1.111.2
IPv4
-
1.1.121.2
IPv4
-
1.1.131.2
IPv4
-
1.1.101.2
IPv4
-
4.3.21.2
IPv4
-
4.3.31.2
IPv4
-
4.3.41.2
IPv4
-
1.1.11.2
IPv4
-
1.7.11.2
IPv4
-
1.9.31.2
IPv4
-
1.9.41.2
IPv4
-
1.9.51.2
IPv4
-
3.14.3.2
IPv4
-
151.3.14.3
IPv4
-
2.31.3.14
IPv4
-
3.2.131.3
IPv4
-
14.7.2.3
IPv4
-
3.36.3.2
IPv4
-
1.9.16.3
IPv4
-
61.3.14.3
IPv4
-
0.0.0.0
IPv4
-
1.12.10.1
IPv4
-
1.9.22.11
IPv4
-
1.9.201.2
IPv4
-
1.7.61.2
IPv4
-
1.12.1.31
IPv4
-
1.5.11.2
IPv4
-
1.5.31.2
IPv4
-
1.5.41.2
IPv4
-
1.5.61.2
IPv4
-
1.5.101.2
IPv4
-
1.5.111.2
IPv4
-
1.12.1.11
IPv4
-
1.12.1.21
IPv4
-
1.12.1.41
IPv4
-
1.12.1.51
IPv4
-
3.36.3.3
IPv4
-
5.29.212.5
IPv4
-
3.6.1.5
IPv4
-
1.3.14.3
IPv4
-
1.3.36.3
IPv4
-
2.5.29.19
IPv4
-
2.5.29.15
IPv4
-
2.5.29.14
IPv4
-
10.0.0.169
IPv4
-
0.0.0.1
IPv4
-
5.7.8.6
IPv4
-
2.1.7.1
IPv4
-
Showing 1 to 65 of 70 rows
Rows per page:
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.