Is 포인트백 for ADPICK safe?
포인트백 for ADPICK sends visited page URLs to ADPICK's shopping-link endpoint when an ADPICK login or affiliate ID is present.
The extension runs a content script on every website and checks whether the browser has an ADPICK login cookie or stored affiliate ID. When one is present, it sends the current page URL to ADPICK to request a shopping or tracking link, and may redirect the page if the response contains one.
Who publishes it(주)오드엠 - no other listings under this identity
(주)오드엠 - no other listings under this identity
What this publisher told the store about itself, and the other listings that told it the same thing.
AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.
Publishers can request a review.
Findings
Extension reports every new site you visit to ADPICK's server
This Korean cashback extension's content script runs on every site.
With an ADPICK login cookie or stored affiliate ID, it sends each newly visited domain's URL to adpick.co.kr's GetShoppingLink.php, which can redirect via affiliate link.
- Severity
- Medium unwanted
- Type
- Unexpected
- CWE
- CWE-359
- Source
- Dynamic sandbox
You browse to any website while you have an ADPICK login cookie or a stored affiliate ID.
This includes sites with no relationship to ADPICK's shopping or cashback network.
The extension sends the exact URL of the page you're on to ADPICK's server to check whether the site is a shopping partner.
A decision for that domain is then cached for up to 24 hours before the check repeats.
- Page URLhttps://www.example-news-site.com/article/12345 (illustrative)
The full address of the page you're viewing, including its path and any query parameters, is included in the outbound request.
- Affiliate / account IDaff-7a41c9de (illustrative)
This ties every URL report to your specific ADPICK member or affiliate ID, letting ADPICK associate the reports with an individual account.
- Domain visit patternexample-news-site.com, retailer.example, forum.example (illustrative)
Repeating automatically for every new domain lets ADPICK's server build a record of the sites you browse while the extension is active.
HTTP 200 with a JSON body that echoed the submitted page URL back and included a partnership status field.
content.js builds the request; background.js performs it
content.js - annotated
content.jsfunction StartAdpickShopping(){ // Runs on every page load (content_scripts matches <all_urls>) once the // user has an ADPICK login cookie or a stored affiliate ID. var apCurrentUrl = window.location.href; // full URL of the page you're on var apCurrentDomain = window.location.hostname; apCurrentDomain = apCurrentDomain.replace(/^www\./,''); // Skip domains that were already checked recently (cache key per domain). getAdpickLocalData("apMall_"+apCurrentDomain,function(val){ if(val=="nopartner"){ // Cached "not a partner" result (valid 24h) - no request sent. }else if(val=="applied"){ // Cached "already applied" result (valid 60min) - no request sent. }else{ // No cached decision for this domain yet: build the ADPICK request, // carrying the current page URL and the account/affiliate ID. var apiUrl="https://adpick.co.kr/extentions/GetShoppingLink.php?md=mall&apHash="+adpickHash+"&apAffid="+adpickAffid+"&url="+encodeURIComponent(apCurrentUrl); // Ask the background service worker to fetch it (content scripts // can't make this cross-origin request directly). chrome.runtime.sendMessage({ type: "fetchData", url:apiUrl }, (data) => { if(typeof data.affid!=="undefined"){ adpickAffid=data.affid; setAdpickLocalData("apAffid",data.affid,60*24*365); // cache 1 year } if(data.status=="pass"){ // no action }else if(data.status=="aleady"){ // affiliate link already applied for this domain setAdpickLocalData("apMall_"+apCurrentDomain,"applied",60); }else if(data.status==true){ // domain IS an ADPICK partner: cache it, then redirect the // current tab through the returned affiliate tracking link setAdpickLocalData("apMall_"+apCurrentDomain,"applied",60); location.replace(data.trackinglink); }else{ // domain is NOT a partner: cache that for 24h setAdpickLocalData("apMall_"+apCurrentDomain,"nopartner",60*24); } }); } });}background.js - annotated
background.jschrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { if (request.type == "getAdpickLogin") { // Reads the ADPICK login cookie to decide whether tracking should run. chrome.cookies.get({"url": "https://www.adpick.co.kr", "name": "PODGATE_D1"}, function(cookie) { sendResponse(cookie); }); return true; } if (request.type === "fetchData") { // Performs the actual outbound request on the content script's behalf, // using whatever URL content.js constructed (the current page's URL). fetch(request.url) .then((response) => response.json()) .then((data) => sendResponse(data)) .catch((error) => console.log("ap Fetch error:", error)); return true; }});Every 1 day
Every domain you visit while logged into ADPICK triggers a check unless it was already checked recently: a 'not a partner' result is cached for 24 hours, and an 'already applied' result is cached for 60 minutes, before that domain is checked again.
- adpick.co.kr
ADPICK's own shopping-link API. Receives the page URL and an affiliate/account ID for every new domain, returning partnership status and an affiliate redirect when applicable.
What it can do
Permissions this extension asks for, as declared in version 1.5. Asking for a permission is not a finding on its own - it is what the extension can do if it chooses to. The current listed version is 1.6, which we have not unpacked yet.
Read and change your data on sean.adpick.co.kr
https://sean.adpick.co.kr/*
Read and change your data on www.adpick.co.kr
https://www.adpick.co.kr/*
Read and change your data on adpick.co.kr
https://adpick.co.kr/*
Store data in your browser
storage
Read and change cookies, including the ones that keep you signed in
cookies
See the address and title of every tab you have open
tabs
Where it sends data
Destinations our analysis observed %ED%8F%AC%EC%9D%B8%ED%8A%B8%EB%B0%B1-for-adpick contacting. Sending data somewhere is not a finding on its own - an extension that syncs your settings has to talk to its own server - but it is where your data can go, and who else it goes to.
- adpick.co.kr
%ED%8F%AC%EC%9D%B8%ED%8A%B8%EB%B0%B1-for-adpick sends data to adpick.co.kr. No other extension we have analysed sends data here.