Is Flow for Chrome™ safe?
Flow is high risk. On every Google search, Flow for Chrome sends your exact query to uru56.com with the runtime ID, version, affiliate ID 3100, a random session token, and a stored identifier. Credentialed, so cookies go too. Automatic, undisclosed.…
AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.
Publishers can request a review.
Findings
Search Queries Transmitted to uru56.com on Every Google Search
On every Google search, Flow for Chrome sends your exact query to uru56.com with the runtime ID, version, affiliate ID 3100, a random session token, and a stored identifier.
Credentialed, so cookies go too.
Automatic, undisclosed.
- Severity
- High unwanted
- Type
- Unexpected
- CWE
- CWE-200
- Source
- Dynamic sandbox
You search for anything on Google.
The extension sends your search query and identifying metadata to uru56.com.
This happens on every Google search page load, including every Google country domain, before any results from uru56.com are displayed.
JSON response containing ad results, CSS styling rules, SearchID, SourceTag, and beacon URLs. Body ~44 KB.
- Your search querybest password manager 2026
The exact words you typed into Google's search box.
- Extension runtime IDalnghhandkkjecnmeaejaonhllbopoej
A stable identifier for your installed copy of the extension. Links all your searches together across sessions.
- Affiliate / publisher ID3100
A hardcoded code (3100) that identifies this extension as the traffic source for monetisation purposes.
- Extension version1-0-3
Which version you have installed.
- Session tokend3k8rn2
A random per-page-load token used to correlate the search request with subsequent ad clicks.
- Stored org tag (crt)org
A value read from local extension storage. Defaults to 'org'; may be updated by the server to segment users.
The request assembly code from content.js
Search parameter assembly — readable form
// On every Google search page, build and fire a tracking request to uru56.com.// 'aid' is hardcoded to '3100' at the top of content.js.this.sessionToken = generateShuffledTimestamp(); // random per-page tokenthis.searchQuery = getQueryParam('q'); // raw Google search termif (this.searchQuery.length > 2) { chrome.storage.local.get({ we: 'org' }, (stored) => { const params = new URLSearchParams({ format: 'json', nohtml: '1', tr: this.sessionToken, a: '3100', // hardcoded affiliate ID e: chrome.runtime.id, // extension's stable CRX ID u: manifest.version.replace(/\./g, '-'), // e.g. '1-0-3' keyword: this.searchQuery, // the user's search term by: manifest.name, // 'Flow for Chrome™' crt: stored.we, // stored org tag, default 'org' }); this.fetchResults('https://uru56.com/script/t.php?' + params); });}XHR with credentials — readable form
// withCredentials=true means any uru56.com cookies are included in the request.fetchResults(url) { const xhr = new XMLHttpRequest(); xhr.withCredentials = true; // sends uru56.com cookies alongside the request xhr.onreadystatechange = () => { if (xhr.readyState === 4 && xhr.responseText.length > 0) { const json = JSON.parse(xhr.responseText); displayResults(json.data); // renders ads + may inject CSS + fires Yahoo beacon } }; xhr.open('GET', url, true); xhr.send();}- uru56.com
Receives every Google search query along with the extension runtime ID and affiliate metadata. Returns sponsored ad results, server-controlled CSS, and Yahoo beacon parameters.
Yahoo Beacons Receive Your Full Google Search URL on Ad Impressions
On sponsored Google results, Flow for Chrome pixels Yahoo (search.yahoo.com, xmlp.search.yahoo.com) with your search URL and referring page.
Params ysid/traffic_source, from uru56.com, link the beacon to that session.
Confirmed live.
- Severity
- Medium unwanted
- Type
- Unexpected
- CWE
- CWE-359
- Source
- Dynamic sandbox
You search on Google and the page displays sponsored results.
The extension fires tracking pixels to Yahoo's beacon servers containing your full Google search URL and referrer.
This occurs when uru56.com's response includes a SearchID and SourceTag, both confirmed present in our test session for ad-bearing queries.
1×1 tracking pixel (transparent GIF). No meaningful body.
- Your full Google search URLhttps://www.google.com/search?q=best+password+manager+2026
The complete URL of the Google search results page, including your search term.
- Referrer URLhttps://www.google.com/
The page you were on before navigating to Google search.
- Yahoo Search Session ID (ysid)44GDQVLKTTKBN
A session identifier returned by uru56.com that links this beacon to your search session on their server.
- Traffic source tagflowsurf_enhan_xmlb_1790_flow
Identifies this extension as the referral source in Yahoo's ad attribution system.
- Frame context flag0
Whether the page is inside a frame (0=top-level, 1=framed). Indicates browsing context.
The beacon code from content.js:504-505
Beacon firing logic — readable form
// Fires after uru56.com returns SearchID and SourceTag in its JSON response.const ysid = data.SearchID; // session ID from uru56.comconst source = data.SourceTag; // attribution tag from uru56.comif (ysid && source) { const inFrame = window.frames.length !== parent.frames.length; const referrer = document.referrer ? encodeURIComponent(document.referrer) : ''; const pageUrl = encodeURIComponent(window.location.href); // full Google search URL // Two endpoints, differing only in c_int2 const endpoints = { 'search.yahoo.com': { c_int2: 2 }, 'xmlp.search.yahoo.com': { c_int2: 1 }, }; const baseParams = { s: '1197808038', // hardcoded Yahoo publisher/site ID c_int1: inFrame ? 1 : 0, c_str1: referrer, // URL-encoded referrer c_str2: pageUrl, // URL-encoded current Google search URL ysid: ysid, // session ID from uru56.com response traffic_source: source, // e.g. 'flowsurf_enhan_xmlb_1790_flow' }; for (const host of Object.keys(endpoints)) { const params = { ...baseParams, ...endpoints[host] }; const url = 'https://' + host + '/beacon/geop/p?' + new URLSearchParams(params); const img = document.createElement('img'); img.height = '1'; img.width = '1'; img.src = url; // fires the tracking pixel document.body.appendChild(img); }}- search.yahoo.com
Primary Yahoo beacon endpoint. Receives the full Google search URL, referrer, and uru56.com session ID for ad attribution.
- xmlp.search.yahoo.com
Secondary Yahoo beacon endpoint. Receives the same payload with a different context flag (c_int2=1).
What it can do
Permissions this extension asks for, as declared in version 1.0.3. Asking for a permission is not a finding on its own - it is what the extension can do if it chooses to.
Store data in your browser
storage