Is Secure Document Sharing via Email by cloudHQ safe?
Secure Document Sharing by cloudHQ reads the email of every signed-in Google account on Gmail and sends the list to cloudHQ.
When Gmail loads, the extension fetches each signed-in account's Gmail page to read its email address, then posts that list to cloudHQ's pre-user check endpoint. This runs automatically without user action, at most once every two weeks. The code is shared with other cloudHQ extensions.
Who publishes itcloudHQ - 10 other listings from the same operator, 7 of them carrying a finding
cloudHQ - 10 other listings from the same operator, 7 of them carrying a finding
What this publisher told the store about itself, and the other listings that told it the same thing.
Same store account
10 other listings published from this account, 9k+ users between them. 7 of them carry a finding.
AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.
Publishers can request a review.
Findings
Secure Share sends all signed-in Google account emails to cloudhq.net
Code analysis shows that opening Gmail makes the extension read each signed-in Google account email and send the list to cloudhq.net, at most once every two weeks.
- Severity
- High unwanted
- Type
- Unexpected
- CWE
- CWE-359
- Source
- Static analysis
You open Gmail in a browser tab.
The extension fetches each signed-in account page and posts the email list to cloudhq.net.
Pre-user check and the account list it sends
Check and POST
content.js:46390fn_pre_user_check = function(e) { var t = this; var n = t.g_email_or_login + t.g_cloudHQ_feature_name + "_pre_check_obj"; chrome.storage.local.get(n, (function(r) { if (!r || !r[n] || !r[n].timestamp || r[n].timestamp < t.g_two_weeks_ago_timestamp) t.fn_get_switcher_account_emails((function() { t.fn_ajax({ type: "POST", url: t.g_server_url + "main_pre_user/check", dataType: "json", data: { email: t.g_email_or_login, email_switcher_list: t.g_switcher_account_emails, email_or_login: t.g_email_or_login, chrome_extension_name: t.g_cloudHQ_feature_name, switch_login: "1" }Account page URL
content.js:46325var i = "https://mail.google.com/mail/u/" + r.g_switcher_account_emails_index + "/?sw=2"- Active accountalice@example.com
Email of the Gmail account currently open.
- All account emails["alice@example.com","alice.work@example.org"] (illustrative)
Every signed-in Google account email found via the account switcher.
- Feature namesecure_share
Which cloudHQ feature made the call.
- Switch login flag1
Constant flag sent with the request.
On an interval
Runs on Gmail load when no stored result exists or the result is older than two weeks; the timestamp is saved in extension storage after a non-error response.
- www.cloudhq.net
Receives the email list at /main_pre_user/check; the extension's own vendor domain.
Lists the account emails a script on a Gmail page can read through the same ?sw=2 account pages.
- Chrome with multiple signed-in Google accounts
// Run in the DevTools console on a mail.google.com tab (page context).// Mirrors the account-enumeration step the content script performs.(async () => { const found = []; for (let n = 1; n <= 5; n++) { const r = await fetch(`https://mail.google.com/mail/u/${n}/?sw=2`, {credentials: 'include'}); const html = await r.text(); const m = html.match(/__initData = ([\s\S]*?);/); if (m) { try { const d = JSON.parse(m[1]); if (d[0] && d[0][27] && d[0][27][8]) found.push(d[0][27][8]); } catch (e) {} } } console.log('Account emails visible to a Gmail-page script:', found);})();- 1Sign into two or more Google accounts.
- 2Open mail.google.com.
- 3Paste into the DevTools console.
- 4Compare the output with the POST body seen in the Network panel.
Static analysis finding. This behaviour was identified by reading the shipped extension code and has not yet been reproduced in a live run. The trigger conditions and the exact data sent are read from the code, not from an observed capture.
Where it sends data
Destinations our analysis observed Secure Document Sharing via Email by cloudHQ 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.
- www.cloudhq.netwidely used
Secure Document Sharing via Email by cloudHQ sends data to www.cloudhq.net. A widely used service: 79 other extensions we have analysed send data here.