BTS Cursor ★ Custom Cursor for Chrome™

BTS Cursor ★ Custom Cursor for Chrome™

ID: jddaakabhmcbgfnbkgcjfeigbnbcdjgn

Supported Languages

🇺🇸English

Extension Info & Metadata

Status
Active
Version
1.01.05
Size
1.25 MB
Rating
3.5/5
Reviews
8
Users
1,000
Type
Extension
Updated
Nov 30, 2025
Category
Just for fun
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
No

Publisher Contextual Analysis

Trusted
Author
https://owhit.comView Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
No
Mailbox exists
Yes
Website
Visit
Total Extensions
143
Active
79
Obsolete
9
Listed
143
Unlisted
0
Total Users
62,014
Screenshot 1
Screenshot 2
Screenshot 3
Screenshot 4

Browse with 60+ BTS cursors featuring RM, Jin, SUGA, j-hope, Jimin, V & Jungkook!

BTS Cursor ★ Custom Cursor for Chrome™ lets you bring the energy and charm of BTS right to your browser! 🖱️💜 Enjoy browsing with 60+ stunning custom cursors featuring BTS members: RM, Jin, SUGA, j-hope, Jimin, V, and Jungkook. 🔹 Features 💜 60+ Unique Cursors – Includes all seven BTS members in different poses, outfits, and styles. ⭐ Favorites System – Save and access your most-used cursors anytime. 📏 Adjustable Size – Choose cursor sizes from 16px to 128px. ⚡ One-Click Switch – Instantly activate any cursor with a single click. 🔘 Enable/Disable Toggle – Easily turn custom cursors on or off. 🚀 Lightweight & Fast – Optimized for smooth performance without slowing your browser. 🎯 Why Choose BTS Cursor? 🧩 Customization – Show your BTS love and make your browser uniquely yours. 🎤 Fan Power – Enjoy every click with visuals inspired by RM, Jin, SUGA, j-hope, Jimin, V, and Jungkook. 🖥️ Simple Interface – Clean and easy-to-use cursor switch panel. 👩‍🎨 Fan-Made Design – Created by ARMYs, for ARMYs. 📌 Note: This extension is not affiliated with HYBE, BigHit Music, or the official BTS brand. All content is fan-made.

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.

On install, the extension opens a tab to yowgames.com with UTM tracking parameters (utm_source=install), and registers an uninstall URL to the same domain with utm_source=Uninstall. This silently signals the third-party domain of both install and uninstall events, enabling covert user lifecycle tracking without the user's knowledge or consent.

cursorbackground.js (Line 2)
chrome.runtime.onInstalled.addListener(function(details) {  if (details.reason === "install") {    chrome.storage.local.set({      switch_status: "true",      default_cursor: "",      pointer_cursor: "",      default_cursor_result: "",      pointer_cursor_result: "",      default_curSize: "48",      pointer_curSize: "48",      favorites: []    });    // Kurulum sonrası hoş geldiniz sayfasını aç    chrome.tabs.create({      url: "https://yowgames.com/bts-cursor-%e2%98%85-custom-cursor-for-chrome/?utm_source=install&utm_medium=link&utm_campaign=bg&utm_content=install"    });  }});// Uzantı kaldırıldığında çalışacakchrome.runtime.setUninstallURL(  "https://yowgames.com/bts-cursor-%e2%98%85-custom-cursor-for-chrome/?utm_source=Uninstall&utm_medium=link&utm_campaign=bg&utm_content=Uninstall");

The extension dynamically injects a CSS style element into every page's document.head using values from chrome.storage that are interpolated directly into a template literal without sanitization. While the values are currently data URLs generated by the extension itself, an attacker who can write to chrome.storage could inject arbitrary CSS content into all browsed pages, enabling CSS-based data exfiltration (e.g., using attribute selectors to send form field values via url() requests). The style id also references 'demonslayer-impact-cursor-style' rather than the BTS theme, suggesting code reuse from a different extension.

cursorcontent.js (Line 20)
// Yeni stil oluşturcursorStyle = document.createElement('style');cursorStyle.id = 'demonslayer-impact-cursor-style';cursorStyle.textContent = `    * {      cursor: url(${data.default_cursor_result}), auto !important;    }    a, button, input[type="submit"], input[type="button"], .btn, [role="button"],     [type="button"], [type="reset"], [type="submit"], [type="checkbox"], [type="radio"],    select, option, .clickable, .pointer, [onclick], [data-action], [data-click], [data-toggle] {      cursor: url(${data.pointer_cursor_result || data.default_cursor_result}), pointer !important;    }  `;

The content script is injected into every frame (all_frames:true) on every HTTP and HTTPS URL at document_start, before any page content loads. This is the maximum possible injection scope and timing, which is unusual for a cursor styling extension that only needs to modify cursor CSS. Running at document_start on all frames including sensitive iframes (payment processors, authentication, email clients) gives the extension early access to each page's DOM before security-sensitive content is rendered.

manifest.json (Line 13)
{  "content_scripts": [    {      "all_frames": true,      "js": [        "cursorcontent.js"      ],      "matches": [        "*://*/*"      ],      "run_at": "document_start"    }  ]}

A MutationObserver is registered on document.documentElement with subtree:true, monitoring all DOM changes across the entire page tree. While it appears to filter on IFRAME/FRAME additions, the callback receives every mutation batch first. Combined with the all_frames:true content script running at document_start on all URLs, this creates a persistent DOM surveillance surface on every page and frame the user visits, including sensitive ones like banking or email.

cursorcontent.js (Line 79)
// Sayfadaki dinamik değişiklikleri izle ve cursor'u tekrar uygulaconst observer = new MutationObserver(function(mutations) {  // Sadece önemli DOM değişikliklerinde cursor'u tekrar uygula  if (mutations.some(mutation =>      mutation.type === 'childList' &&      (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0) &&      Array.from(mutation.addedNodes)      .some(node => node.nodeName === 'IFRAME' || node.nodeName === 'FRAME')    )) {    if (cursorData) {      applyCursor(cursorData);    }  }});// DOM değişikliklerini izlemeye başlaobserver.observe(document.documentElement, {  childList: true,  subtree: true});

The popup loads a font directly from Google's servers rather than bundling it locally. Every time a user opens the extension popup, a network request is sent to fonts.googleapis.com, allowing Google to log the event and correlate it with the user's IP and browser fingerprint. This is an unnecessary external dependency that leaks popup-usage telemetry to a third party.

cursorpopup.html (Line 13)
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap" rel="stylesheet">

By severity

Critical0
High0
Medium3
Low2

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
1.01.055

Files with findings

4 distinct paths — top paths by unique finding count:

  • cursorcontent.js2
  • cursorbackground.js1
  • cursorpopup.html1
  • manifest.json1
S.No.
Category
Severity
File
Summary
Found in Version
1Code Injection
medium
cursorcontent.js (line 20)The extension dynamically injects a CSS style element into every page's document.head using values from chrome.storage that are interpolated directly into a template literal without sanitization. While the values are …
2Tracking
medium
cursorbackground.js (line 2)On install, the extension opens a tab to yowgames.com with UTM tracking parameters (utm_source=install), and registers an uninstall URL to the same domain with utm_source=Uninstall. This silently signals the third-par…
3Unauthorized Data Collection
medium
manifest.json (line 13)The content script is injected into every frame (all_frames:true) on every HTTP and HTTPS URL at document_start, before any page content loads. This is the maximum possible injection scope and timing, which is unusual…
4Tracking
low
cursorpopup.html (line 13)The popup loads a font directly from Google's servers rather than bundling it locally. Every time a user opens the extension popup, a network request is sent to fonts.googleapis.com, allowing Google to log the event a…
5Unauthorized Data Collection
low
cursorcontent.js (line 79)A MutationObserver is registered on document.documentElement with subtree:true, monitoring all DOM changes across the entire page tree. While it appears to filter on IFRAME/FRAME additions, the callback receives every…
URLs
12
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.

yowgames.com/bts-cursor-%e2%98%85-custom-cursor-for-chrome/https://yowgames.com/bts-cursor-%e2%98%85-custom-cursor-for-chrome/?utm_source=install&utm_medium=link&utm_campaign=bg&utm_content=install
yowgames.com/bts-cursor-%e2%98%85-custom-cursor-for-chrome/https://yowgames.com/bts-cursor-%e2%98%85-custom-cursor-for-chrome/?utm_source=Uninstall&utm_medium=link&utm_campaign=bg&utm_content=Uninstall
chrome.google.com/webstore/detail/$%7BextensionId%7D/reviews%60;https://chrome.google.com/webstore/detail/${extensionId}/reviews`;
fonts.googleapis.com/css2https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap
yowgames.com/bts-cursor-%e2%98%85-custom-cursor-for-chrome/https://yowgames.com/bts-cursor-%e2%98%85-custom-cursor-for-chrome/?utm_source=getcursors&utm_medium=link&utm_campaign=bg&utm_content=getcursors
www.w3.org/1999/02/22-rdf-syntax-nshttp://www.w3.org/1999/02/22-rdf-syntax-ns#
ns.attribution.com/ads/1.0/http://ns.attribution.com/ads/1.0/
purl.org/dc/elements/1.1/http://purl.org/dc/elements/1.1/
ns.adobe.com/pdf/1.3/http://ns.adobe.com/pdf/1.3/
ns.adobe.com/xap/1.0/http://ns.adobe.com/xap/1.0/
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
1.01.05
Latest
1.25 MB
Malicious
5
1.01.04
1.26 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.