FanSerials

ID: lodhfembogjcejlffjpcegplgnmjglkn

Could be malicious

Extension Info & Metadata

Status
Removed
Version
2.0.19
Size
0.18 MB
Rating
4.3/5
Reviews
42
Users
68,362
Type
Extension
Updated
Dec 7, 2019
Category
14_fun
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
No

Publisher Contextual Analysis

Author
http://fanserials.tvView Profile
Total Extensions
1
Active
0
Obsolete
1
Listed
1
Unlisted
0
Total Users
68,362

FanSerials прямо из панели браузера — мгновенный и удобный доступ к основным разделам сайта!

Быстрый доступ к основным разделам сайта: весь контент, поиск, личный кабинет и т.д.

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.
webRequestBlocking
Permission
Critical
This permission allows the extension to intercept, modify, or block any web request in real-time before it reaches its destination. Rated Critical because it can modify sensitive data (like passwords, credit cards) before encryption, redirect traffic to malicious sites, or block security updates.
<all_urls>
Permission
Critical
This permission grants access to all websites without restriction. Rated High because it can access any web content, monitor all web activity, and potentially steal sensitive data across all sites.
Dangerous Permission Combination
Risk Factor
Critical
This extension can intercept, modify, and block web requests in real-time.
Contextual Risk Factors
Risk Factor
High
The following context increases the overall risk:• 15% increase: Older manifest version lacks modern security controls
activeTab
Permission
Medium
This permission grants temporary access to the current tab. Rated Medium because it can access current page content when invoked, though limited to user-initiated actions.
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.
Older Manifest Version
Risk Factor
Medium
This extension uses Manifest Version 2
alarms
Permission
Low
This permission schedules periodic tasks. Rated Low because it can only trigger events at specified times without access to sensitive data.

On every startup and every 5-minute alarm, the extension fetches a public GitHub Gist and stores the entire parsed JSON response into chrome.storage.local with no schema validation. The Gist owner (GitHub user 'fansserials') can push any properties — including a new baseUrl and redirectHost — at any time, effectively giving them a remote C2 channel to redirect all extension API calls and UI navigation links to an arbitrary server without any extension update.

static/js/background.bundle.js (Line 280)
getBaseUrl: "https://gist.githubusercontent.com/fansserials/b160316e28a2ce41b4ef3a82506953ff/raw"}...var u = function t() {  fetch(i.a.getBaseUrl)    .then(function(t) {      return t.json()    })    .then(function(t) {      chrome.storage.local.set(Object.assign({}, t), function() {        s(), a()      })    })    .catch(function(e) {      setTimeout(t, 7e3)    })};

The manifest declares webRequestBlocking combined with <all_urls>, which grants the ability to intercept, inspect, and silently modify every HTTP/HTTPS request made by the browser on any website. A search across all bundled JavaScript files (background.bundle.js, index.bundle.js, all three chunk files) finds zero chrome.webRequest.* listener registrations — these extremely powerful permissions are declared but completely dormant in the shipped code, which is consistent with an extension that acquired the permissions speculatively or in preparation for future activation via the remote Gist configuration.

manifest.json (Line 21)
{  "permissions": [    "alarms",    "activeTab",    "storage",    "webRequest",    "webRequestBlocking",    "<all_urls>"  ]}

The redirectHost value sourced from the remote Gist configuration is used as the href target for the extension popup's logo/home link and as the base for all navigation URLs including profile and subscription pages. If the Gist is updated to point redirectHost at a lookalike phishing domain, all ~68,000 users clicking links in the popup would be sent to the attacker-controlled site without any indication in the extension UI.

static/js/index.bundle.js (Line 9579)
chrome.storage.local.get(["baseUrl"], function(t) {    e({      type: "SET_HOST",      payload: t.baseUrl    })  })  ...  var e = this.props.redirectHost.slice(0, -1)    ...    href: this.props.redirectHost,

By severity

Critical0
High2
Medium1
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
2.0.193

Files with findings

3 distinct paths — top paths by unique finding count:

  • manifest.json1
  • static/js/background.bundle.js1
  • static/js/index.bundle.js1
S.No.
Category
Severity
File
Summary
Found in Version
1Other
high
manifest.json (line 21)The manifest declares webRequestBlocking combined with <all_urls>, which grants the ability to intercept, inspect, and silently modify every HTTP/HTTPS request made by the browser on any website. A search across all b…
2Remote Code Loading
high
static/js/background.bundle.js (line 280)On every startup and every 5-minute alarm, the extension fetches a public GitHub Gist and stores the entire parsed JSON response into chrome.storage.local with no schema validation. The Gist owner (GitHub user 'fansse…
3Phishing
medium
static/js/index.bundle.js (line 9579)The redirectHost value sourced from the remote Gist configuration is used as the href target for the extension popup's logo/home link and as the base for all navigation URLs including profile and subscription pages. I…
URLs
18
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.

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/
www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtdhttp://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd
www.w3.org/2000/svghttp://www.w3.org/2000/svg
www.w3.org/1999/xlinkhttp://www.w3.org/1999/xlink
clients2.google.com/service/update2/crxhttps://clients2.google.com/service/update2/crx
fonts.googleapis.com/csshttps://fonts.googleapis.com/css?family=PT+Sans:400,700&subset=cyrillic-ext
fonts.googleapis.com/csshttps://fonts.googleapis.com/css?family=Ubuntu:700
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
2.0.19
Latest
0.18 MB
Malicious
3
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.