Security Warning: Historically Flagged as Malware
Capybara Cursor ★ Custom Cursor for Chrome™
ID: pahlnbfkogncdbkaeaamcmpmhjecicmh
Supported Languages
Extension Info & Metadata
Publisher Contextual Analysis
- Author
- https://owhit.comView Profile
- Privacy
- Privacy Policy
- Help
- Help Center
- MX records exist
- Yes
- Domain exists
- Yes
- Is disposable
- No
- Is role-based
- No
- Mailbox exists
- Yes
- Website
- Visit
Relax online with 95+ capybara cursors in cute, chill, and meme-worthy styles!
Bring ultimate chill vibes to your browser with the internet’s most relaxed animal — the capybara! 🐾🖱️ Explore over 95+ custom cursors featuring capybaras in hilarious, cute, and cozy styles — from hot springs and fruit hats to meme-worthy poses! 🔹 Features 🐾 95+ Fun Cursors – Enjoy a wide range of capybara styles, moods, and outfits. ⭐ Favorites System – Save your go-to cursors for quick access. 📏 Adjustable Size – Customize cursor size from 16px to 128px. ⚡ One-Click Swap – Instantly activate any cursor you want. 🔘 Toggle Button – Enable or disable the extension anytime. 🚀 Lightweight & Fast – Built for smooth performance without slowing your browser. 🎯 Why Capybara Cursor? 🌿 Wholesome Customization – Make your browser feel calm, quirky, and unique. 😎 Meme & Mood – From relaxed capybaras to internet-famous poses, every click is a vibe. 🖥️ User-Friendly Interface – Clean and simple control panel. 🎨 Fan-Made – Created by capybara lovers, just for you. 📌 Note: This extension is not affiliated with any official brand or entity. All content is fan-made and for fun.
The content script is injected into every page (including subframes) at `document_start`, meaning it executes before the page's own scripts and DOM have loaded. Combined with `all_frames: true`, this gives the extension the earliest possible hook into every website the user visits, which is broader than necessary for a simple cursor-override tool that only injects CSS.
{ "content_scripts": [ { "all_frames": true, "js": [ "cursorcontent.js" ], "matches": [ "*://*/*" ], "run_at": "document_start" } ]}On installation the extension silently opens a tab to an external domain (`yowgames.com`) with UTM tracking parameters, and registers an uninstall callback URL that phones home when the extension is removed. While common in adware-style extensions, this allows the publisher to track installation and removal events per user without explicit disclosure.
chrome.runtime.onInstalled.addListener(function(details) { if (details.reason === "install") { chrome.tabs.create({ url: "https://yowgames.com/capybara-cursor-%e2%98%85-custom-cursor-for-chrome/?utm_source=install&utm_medium=link&utm_campaign=bg&utm_content=install" }); }});chrome.runtime.setUninstallURL( "https://yowgames.com/capybara-cursor-%e2%98%85-custom-cursor-for-chrome/?utm_source=Uninstall&utm_medium=link&utm_campaign=bg&utm_content=Uninstall");The popup page (which runs in the privileged `chrome-extension://` origin) loads a stylesheet from Google Fonts over the network. Every time the popup is opened this makes an outbound request that reveals the user's IP address and browser fingerprint to Google's CDN, without any opt-in from the user.
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap" rel="stylesheet">A MutationObserver is attached to `document.documentElement` with `subtree: true` on every page the user visits, watching for iframe/frame additions. While used here only to reapply cursor CSS, running a persistent DOM watcher across the entire document tree of every website has a non-trivial performance footprint and represents broader page monitoring than a cursor extension strictly requires.
const observer = new MutationObserver(function(mutations) { 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); } }});observer.observe(document.documentElement, { childList: true, subtree: true});By severity
Versions scanned
Showing 1 of 2 scanned versions with more than one unique finding. Counts are unique findings that include each version.
| Extension Version | Code Review Findings |
|---|---|
| 1.01.04 | 4 |
Files with findings
4 distinct paths — top paths by unique finding count:
- cursorbackground.js1
- cursorcontent.js1
- cursorpopup.html1
- manifest.json1
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.