QuickLinker

ID: nlekpdjojigdbkidndldccapckfonjfb

Could be malicious

Supported Languages

🇹🇼Chinese (Traditional)

Extension Info & Metadata

Status
Removed
Version
3.4.0
Size
0.10 MB
Rating
0.0/5
Reviews
0
Users
77
Type
Extension
Updated
Feb 22, 2026
Category
Productivity Tools
Price
Free
Featured
No
Visibility
Listed
Mature
Yes
By Google
No
Trusted
No

Publisher Contextual Analysis

Author
barryView Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
No
Mailbox exists
Yes
Total Extensions
3
Active
1
Obsolete
2
Listed
3
Unlisted
0
Total Users
225

QuickLinker is a browser extension that allows you to quickly create and manage links to your favorite websites.

QuickLinker 是一款瀏覽器擴充功能,可讓你快速建立並管理你最愛的網站連結。

Item
Type
Severity
Description
scripting
Permission
Critical
This permission allows injection and execution of JavaScript on any webpage. Rated Critical because it can modify page content, steal sensitive data, and inject malicious code into any site the extension has access to.
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.
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.
contextMenus
Permission
Low
This permission adds items to browser context menus. Rated Medium because it only modifies right-click menus without access to page content.

User-controlled `version.name` and `version.baseUrl` from chrome.storage.sync are concatenated into innerHTML without escaping (unlike renderSites which escapes). If an attacker can influence storage.sync via imported settings JSON, this yields DOM-XSS in the popup's elevated context. Exploitability is limited (attacker must get user to import crafted settings), but it is a real injection sink.

src/popup/popup.js (Line 241)
versionDiv.innerHTML = `        <span class="drag-handle">☰</span>        <span class="version-name-display">${version.name}</span>        <span class="version-url-display">${version.baseUrl}</span>        <button class="edit-version-btn" title="編輯版本"><i class="fi fi-rr-edit"></i></button>        <button class="delete-version-btn" title="刪除版本"><i class="fi fi-rs-trash"></i></button>    `;

Content script injects Google favicon requests containing the hostnames of the user's configured target sites (which include adult/JAV sites) on every page where the floating button appears. This leaks browsing/configuration metadata to a third party (Google) without user consent. Low-risk tracking side-effect typical of many extensions, not clearly malicious but worth noting.

src/content/content.js (Line 450)
let faviconUrl = '';try {  const hostname = new URL(result.finalUrl || result.url)    .hostname;  faviconUrl = `https://www.google.com/s2/favicons?domain=${hostname}`;} catch (e) {  console.error('Error getting favicon hostname:', e);}if (faviconUrl) {  subButton.style.backgroundImage = `url(${faviconUrl})`;}

Because the manifest matches `*://*/*`, the content script observes DOM mutations and polls the URL on every site the user visits. While the extracted data is only used locally to build the floating button, this broad scope gives the extension visibility into all pages and expands attack surface. No exfiltration channel observed; data stays local.

src/content/content.js (Line 254)
const observer = new MutationObserver(() => {  if (_codeFound) return;  clearTimeout(_observerDebounceTimer);  _observerDebounceTimer = setTimeout(async () => {    const extractResult = await getCode();    ...  }, 300);});observer.observe(document.body, {  childList: true,  subtree: true});setInterval(() => {  if (location.href !== _lastCheckedUrl) {    ...  }}, 1000);

By severity

Critical0
High0
Medium1
Low2

Versions scanned

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

Extension VersionCode Review Findings
3.4.03

Files with findings

2 distinct paths — top paths by unique finding count:

  • src/content/content.js2
  • src/popup/popup.js1
S.No.
Category
Severity
File
Summary
Found in Version
1Code Injection
medium
src/popup/popup.js (line 241)User-controlled `version.name` and `version.baseUrl` from chrome.storage.sync are concatenated into innerHTML without escaping (unlike renderSites which escapes). If an attacker can influence storage.sync via imported…
2Tracking
low
src/content/content.js (line 450)Content script injects Google favicon requests containing the hostnames of the user's configured target sites (which include adult/JAV sites) on every page where the floating button appears. This leaks browsing/config…
3Unauthorized Data Collection
low
src/content/content.js (line 254)Because the manifest matches `*://*/*`, the content script observes DOM mutations and polls the URL on every site the user visits. While the extracted data is only used locally to build the floating button, this broad…
URLs
16
IPv4
1
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.

unpkg.com/[email protected]/dist/aos.csshttps://unpkg.com/[email protected]/dist/aos.css
github.com/s813082/QuickLinkerhttps://github.com/s813082/QuickLinker
via.placeholder.com/900x500/667eea/ffffffhttps://via.placeholder.com/900x500/667eea/ffffff?text=QuickLinker+Demo+Screenshot
github.com/s813082/QuickLinker/archive/refs/heads/main.ziphttps://github.com/s813082/QuickLinker/archive/refs/heads/main.zip
github.com/s813082/QuickLinkerhttps://github.com/s813082/QuickLinker#安裝方式
github.com/s813082/QuickLinker/issueshttps://github.com/s813082/QuickLinker/issues
github.com/s813082/QuickLinker/blob/main/README.mdhttps://github.com/s813082/QuickLinker/blob/main/README.md
github.com/s813082/QuickLinker/blob/main/LICENSEhttps://github.com/s813082/QuickLinker/blob/main/LICENSE
unpkg.com/[email protected]/dist/aos.jshttps://unpkg.com/[email protected]/dist/aos.js
cdn.jsdelivr.net/particles.js/2.0.0/particles.min.jshttps://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js
Showing 1 to 10 of 20 rows
Rows per page:

Gain full insight into all external connections.

Upgrade for full visibility.

3.176.77.84
IPv4
-
Showing 1 to 4 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.