Is Meeting Scheduler for Gmail™ by cloudHQ safe?
Meeting Scheduler for Gmail lists every signed-in Google account email and posts the list to cloudHQ.
About every two weeks per account, the Gmail content script loads mail.google.com account pages to collect the email address of each Google account signed in to the browser. It then sends that list, with the current email, to cloudHQ's servers. Scheduling a meeting needs only the active account.
Strong link to a flagged operator: 3 of the 18 other listings from the same operator are rated high or critical for malicious behaviour. Flagged: HTML Editor (high), Screenshot (high), Share emails via secure URL link by cloudHQ (high).
Who publishes itcloudHQ LLC - 18 other listings from the same operator, 11 of them carrying a finding
cloudHQ LLC - 18 other listings from the same operator, 11 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
18 other listings published from this account, 312k+ users between them. 11 of them carry a finding.
AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.
Publishers can request a review.
Findings
Gmail add-on reads every signed-in Google address and sends the list to cloudHQ
Code analysis shows the content script fetches mail.google.com/mail/u/N pages, parses each account email, and POSTs the list to www.cloudhq.net/main_pre_user/check about every two weeks.
- Severity
- High unwanted
- Type
- Unexpected
- CWE
- CWE-359
- Source
- Dynamic sandbox
You open Gmail with more than one Google account signed in.
The extension fetches each account's page, extracts the email addresses and posts them all to cloudHQ.
Runs at startup, at most once per two weeks per account.
Pre-user check that posts the collected account list
fn_pre_user_check
content.js:54370fn_pre_user_check = function(e) { var t = this; try { var n = t.g_email_or_login + t.g_cloudHQ_feature_name + "_pre_check_obj", r = ((new Date).getTime(), { value: "true", timestamp: (new Date).getTime() }), i = {}; i[n] = r, chrome.storage.local.get(n, (function(r) { if (!r || !r[n] || !r[n].timestamp || r[n].timestamp < t.g_two_weeks_ago_timestamp) try { 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" }, complete: function(e, t) { if (-1 === ["error", "timeout", "abort"].indexOf(t)) try { chrome.storage.local.set(i, (function() {}))Account enumeration via mail/u/N pages
fn_get_switcher_account_emails (start)
content.js:54310 var i = "https://mail.google.com/mail/u/" + r.g_switcher_account_emails_index + "/?sw=2"; n ? (i = n + r.g_switcher_account_emails_index + "/?tgif=d", t().ajax({ url: i, context: document.body, cache: !1, success: function(t) { var i = /_docs_flag_initialData=([\s\S]*?)\;/gm; try { if ((a = i.exec(t)) && a.length > 1) {- emailalice@example.com (illustrative)
The active Gmail account address.
- email_switcher_list["alice@example.com","alice.work@example.org"] (illustrative)
Addresses of every signed-in Google account found.
- chrome_extension_namegmail_calreserve
Which cloudHQ feature sent the check.
- switch_login1
Constant flag set to 1.
- www.cloudhq.net
Receives the active address and the full list of signed-in Google addresses.
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.
What it can do
Permissions this extension asks for, as declared in version 1.0.1.7. Asking for a permission is not a finding on its own - it is what the extension can do if it chooses to.
Read and change your data on mail.google.com
https://mail.google.com/
Read and change your data on inbox.google.com
https://inbox.google.com/
Read and change your data on www.cloudhq.net
https://www.cloudhq.net/
Run its own code inside the pages you visit
scripting
Store data in your browser
storage
Keep running in the background while your browser is open
background
Where it sends data
Destinations our analysis observed Meeting Scheduler for Gmail™ 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
Meeting Scheduler for Gmail™ by cloudHQ sends data to www.cloudhq.net. A widely used service: 79 other extensions we have analysed send data here.