Security Alert: Confirmed Malware
Line Numbers for Google Docs
ID: mblodabbcapnkgcfnddfpfaamjckjlik
Supported Languages
Extension Info & Metadata
Publisher Contextual Analysis
- Author
- http://linenumbers.appView Profile
- MX records exist
- Yes
- Domain exists
- Yes
- Is disposable
- No
- Is role-based
- No
- Mailbox exists
- Yes
The simplest way to add line numbers to any Google Docs document
This lightweight chrome extension allows you to add line numbers to any Google Docs document. The ability to number lines is the perfect way to print out a file with line numbers. Line numbering also makes it easy to work on long documents with others by simplifying the task of finding certain passages in a document.
The bundled manifest declares `notifications` and the narrower `https://linenumbers.app/api/v1/*` scope, whereas the published CWS manifest omits `notifications` and grants the broader `https://linenumbers.app/*`. The `notifications` permission is exercised by Firebase Cloud Messaging for subscription-update alerts, which is legitimate, but the divergence between the installed and store-listed manifest means users could not have consented to the `notifications` permission from the store listing. This is a minor transparency/disclosure discrepancy, not evidence of malice.
{ "permissions": [ "https://docs.google.com/document/d/*", "https://linenumbers.app/api/v1/*", "storage", "notifications" ]}GTM container GTM-KVTFCZ4 is loaded by dynamically injecting a script element into the background page. While this is standard analytics practice and the manifest CSP explicitly permits https://www.googletagmanager.com, it means whoever controls this GTM container could push arbitrary JavaScript into the extension background context. This runs only in the background page (not injected into Google Docs), the CSP was intentionally permissive for it, and GTM is consistent with the publisher's analytics needs for a subscription product — but it is technically a remote-code-loading vector of note.
(function(w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date() .getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);})(window, document, 'script', 'dataLayer', 'GTM-KVTFCZ4');By severity
Versions scanned
Showing 1 of 2 scanned versions with more than one unique finding. Counts are unique findings that include each version.
| Extension Version | Code Review Findings |
|---|---|
| 2.1.2 | 2 |
Files with findings
2 distinct paths — top paths by unique finding count:
- js/gtm.js1
- manifest.json1
URLs
View the external URLs this extension communicates with to understand its network activity and data interactions.
Gain full insight into all external connections.
Upgrade for full visibility.
Gain full insight into all external connections.
Upgrade for full visibility.
Code Diff
Compare extension code between any two versions.
No comparable text files found between these versions.
Browse and explore files within this extension package
Gain full insight into all external connections.
Upgrade for full visibility.