Streak CRM for Gmail
The AI review rates the findings as likely false positive, but the risk score (85/100) still counts them.
Analysis record
- Analysed
- 4 days ago
- Version
- v7.119
- Artifact
- SHA256 0B4…5F8
- Source
- Findings (non-IoC)
Is Streak CRM for Gmail safe?
Streak CRM for Gmail is a sales tool that runs inside your Gmail inbox, letting you track threads, pipelines and contacts without leaving email. This build is version 7.117 on the Edge add-on store. The data we have lists no special permissions and no network endpoints, so the scan had no permission list to judge against.
What it did flag is ordinary packaging. Network findings point at fetch calls in the compiled bundles, such as NET-FETCH-clientjs/linkedinApp.e8371eca0eff42837646.js-44184 and NET-FETCH-clientjs/clientjs.chunk.669.9f3af283e6dcf4b19bf2.js-29319. A CRM has to send and receive data, and a fetch call in a bundled file means a request goes out from that spot. Other flags cover the same files: OBFUSCATION-fromcharcode_bulk and OBFUSCATION-large_base64 on clientjs/app.21d10e378bcb5ab244a2.js, and OBFUSCATION-unicode_heavy across five bundles. Minified production JavaScript decodes strings and inlines images this way, and non-English interface text makes the Unicode counter trip.
Nothing matched a malware signature, a known bad domain, a hardcoded credential or a cookie-theft pattern. The flags describe how the code is packed. They don't show what the extension does with your mail.
The limit is the manifest. No host list came through, so nobody checked which servers Streak is allowed to contact. The store listing's own permission list shows that.
Evidence ledger
Ranked by severity · findings with a source location link to the code viewer
Publisher Evidence
Limited evidenceStreak
Publisher identity, store signals, distribution reach, and warning signals used for context. Treat this as supporting evidence, not a clean bill of health.
Edge does not expose the same publisher verification data as IDE stores, so this score is deliberately conservative.
13 evidence rows available.
Finding Categories
AI Security Report
AI Security Review
Evidence context: threat category none; evidence quality moderate.
Streak CRM for Gmail is a long-shipped sales tool that puts a pipeline inside Gmail. Every finding here sits in the extension's own compiled front end: clientjs/app.21d10e378bcb5ab244a2.js, clientjs/linkedinApp.e8371eca0eff42837646.js, clientjs/sheetsApp.01e854ed79ca2b0b20d4.js, and the numbered chunks beside them.
The network findings are all NET-FETCH matches inside those bundles. NET-FETCH-clientjs/linkedinApp.e8371eca0eff42837646.js-44184 and NET-FETCH-clientjs/clientjs.chunk.669.9f3af283e6dcf4b19bf2.js-29319 are two of them. A CRM that syncs Gmail threads to a backend has to call fetch, and the finding records that a fetch exists at that line. The evidence carries no endpoint list and no destination domain, so there is nothing here tying a request to anywhere unusual. Compare that with the shape of real exfiltration findings, which pair a request with a domain that has no business being in the extension.
The obfuscation block is the noisier half. OBFUSCATION-unicode_heavy fires at line 0 of five bundles, including clientjs/sheetsApp.01e854ed79ca2b0b20d4.js and clientjs/app.21d10e378bcb5ab244a2.js. A CRM with a German or Japanese interface ships non-ASCII strings, and the rule counts high Unicode density rather than checking what the characters say. OBFUSCATION-fromcharcode_bulk and OBFUSCATION-large_base64 land on the same app bundle, which is what a webpack production build looks like when it inlines images and decodes strings at load time. OBFUSCATION-function_indirect in pageWorld.js is expected for a content script that has to read the Gmail page: running in page context requires indirect references. None of these are hidden payloads in the sense that matters, where a malware signature sits in the same file as the obfuscation. There is no malware signature anywhere in the evidence.
A skeptic would point at the blank developer name, the empty permission and host_permission lists, the zero user count, and the five high-severity obfuscation flags, and call this an unattributed clone. The file layout argues otherwise. linkedinApp, sheetsApp, a sheetsStoreApp store asset and pageWorld.js are Streak's actual integration surface, not the shape of a copy. Version 7.117 matches a real release line. Blank developer and permission fields are gaps in what got collected, and a collection gap does not turn a fetch call into a stolen session. An extension lifting Gmail cookies or OAuth tokens would show cookie access, credential strings or a hardcoded endpoint; this bundle shows none of those.
The stronger version of the review would need the manifest's host permissions and the actual fetch destinations. That data would settle the question quickly. On what is present, the findings describe build output.
Key Reasons
- All 65 network findings are NET-FETCH matches inside Streak's own compiled clientjs bundles (e.g. NET-FETCH-clientjs/linkedinApp.e8371eca0eff42837646.js-44184), with no endpoint or domain attached to any of them
- Zero malware-signature, zero IoC, zero secret and zero code-smell findings across 268 total findings; the remaining 203 are info-level
- OBFUSCATION-unicode_heavy at line 0 of five bundles matches localized non-ASCII interface strings, not hidden payloads
- OBFUSCATION-fromcharcode_bulk and OBFUSCATION-large_base64 on clientjs/app.21d10e378bcb5ab244a2.js match standard webpack production output that decodes strings and inlines assets
- File layout (pageWorld.js, linkedinApp, sheetsApp, sheetsStoreApp) matches Streak's real product integrations and version 7.117 release line
False Positive Considerations
- Minified webpack bundles in clientjs/ trigger NET-FETCH and fromCharCode/base64 decode rules on ordinary build output
- OBFUSCATION-unicode_heavy fires on non-ASCII localized strings in five client bundles
- pageWorld.js function_indirect is the normal pattern for a page-context content script reading the Gmail DOM
- Blank developer_name and empty permission lists reflect missing collection, not extension behavior
Reviewed 2026-10-17; recommended action: suppress false positive; model confidence 85%.
Edge version history
Risk trend by version
39 analyzed versions. Each point is the latest successful scan for that version; failed zero-score scans are hidden. Dates are based on first seen by risky plugins.
Pick any point on the chart to explore that version's code below.
Source Code Not Available
Source code is not available for this version of the extension.
Frequently Asked Questions
Similar Extensions
Related extensions from the same publisher or marketplace