Is Clock, Alarm, Timer & Stopwatch safe?
Clock, Alarm, Timer & Stopwatch bundles the Mellowtel SDK, which loads server-chosen pages in hidden frames after opt-in.
After the user accepts a 'Help the extension for free' prompt in the popup, the extension opens a connection to ws.mellow.tel and loads URLs chosen by that server in hidden iframes, adjusting frame and CSP headers to do so. On server instruction it can also record the request and response headers and bodies of those pages and post them to a server-supplied endpoint. Nothing in this runs unless the user has opted in.
Who publishes itsiegeappbrasil - 11 other listings from the same operator, 10 of them carrying a finding
siegeappbrasil - 11 other listings from the same operator, 10 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
11 other listings published from this account, 1k+ users between them. 10 of them carry a finding.
Shared hosts - 2 hostnames
Hostnames hardcoded in this extension that few other listings call. That can mean one operator behind both, and it can equally mean a small shared vendor, so it is context rather than a conclusion. Hosts that many listings call are left out: they are services, not connections.
AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.
Publishers can request a review.
Findings
Clock extension SDK loads server-chosen URLs in off-screen frames after opt-in
Code analysis shows that after an in-popup Accept, the bundled Mellowtel SDK connects to ws.mellow.tel and loads server-supplied URLs in off-screen frames, relaying request data to a server-set endpoint.
- Severity
- High unwanted
- Type
- Unexpected
- CWE
- CWE-506
- Source
- Static analysis
You click Accept on the 'Help the extension for free' prompt in the popup.
The prompt links to Mellowtel terms and also offers Cancel.
The extension connects to ws.mellow.tel and starts loading pages chosen by that server in off-screen frames.
Requests made from those frames can be reported back to a server-supplied address.
Connection endpoints and opt-in flag in the shipped bundle
Endpoints (names restored)
background.jsconst WS_URL = "wss://ws.mellow.tel";const APPROVAL_URL = "https://api.mellow.tel/approval";const RECONNECT_DELAYS_MS = [30000, 60000, 300000, 600000, 1200000, 3600000];Opt-in flag (names restored)
popup.jsconst OPT_IN_KEY = "mellowtelOptIn";async function optIn() { await setStorage(OPT_IN_KEY, "true"); return true; }async function optOut() { await setStorage(OPT_IN_KEY, "false"); await disconnect(); return true; }Header stripping and off-screen frame creation
Intent of the rule
background.jschrome.declarativeNetRequest.updateSessionRules({ removeRuleIds: [ruleId], addRules: [{ id: ruleId, priority: 1, action: { type: "modifyHeaders", responseHeaders: [{ header: "x-frame-options", operation: "remove" }, /* content-security-policy handling follows */] } }]});Intent of the frame builder
pascoli.jsconst frame = document.createElement("iframe");frame.id = frameId;frame.credentialless = true;frame.src = url; // URL supplied by the serverframe.referrerPolicy = referrerPolicy;- Request URLhttps://example.com/api/items?page=2
The address of each request made inside a off-screen frame.
- Method and headersGET; content-type: application/json
How the request was made and the request and response headers.
- Response body{"items":[{"id":4121}]}
The content returned to the off-screen frame.
- Timestamp and record id2026-09-14T10:22:41.118Z; burke_id set by server
Ties each captured record to a time and a server-issued job.
- ws.mellow.tel
WebSocket that delivers URLs to load in off-screen frames.
- api.mellow.tel
Approval endpoint polled by the service worker.
- www.mellow.tel
Opt-in, settings and uninstall-feedback pages.
- mjkrxoav2cqz3dtgn6ttcyxeua0mqpul.lambda-url.us-east-1.on.aws
AWS Lambda URL named in the code as a rendered-content destination.
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 Clock, Alarm, Timer & Stopwatch 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.
- ws.mellow.tel
Clock, Alarm, Timer & Stopwatch sends data to ws.mellow.tel. 20 other extensions we have analysed send data here.
- api.mellow.tel
Clock, Alarm, Timer & Stopwatch sends data to api.mellow.tel. 13 other extensions we have analysed send data here.
- mjkrxoav2cqz3dtgn6ttcyxeua0mqpul.lambda-url.us-east-1.on.aws
Clock, Alarm, Timer & Stopwatch sends data to mjkrxoav2cqz3dtgn6ttcyxeua0mqpul.lambda-url.us-east-1.on.aws. 2 other extensions we have analysed send data here.