V·Comm

ID: kinnehdjfdcilmhhfopnpmjiabkiigje

Could be malicious

Supported Languages

🇪🇸Spanish

Extension Info & Metadata

Status
Removed
Version
1.0.0
Size
0.08 MB
Rating
2.5/5
Reviews
2
Users
5,000
Type
Extension
Updated
Oct 7, 2024
Category
Productivity Workflow
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
No

Publisher Contextual Analysis

Country
ES
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
No
Mailbox exists
Yes
Address
Polígono Industrial El Laurel Calle Víctor Jara 103-104 La Zubia, Granada 18140 ES
Total Extensions
1
Active
0
Obsolete
1
Listed
1
Unlisted
0
Total Users
5,000

Email Change History

1 change
Oct 9, 2024
Domain changed

Trabajo con documentos digitales en V·Comm

Extensión de la Plataforma de Administración Electrónica V·Comm. Permite la firma electrónica de documentos dentro del ecosistema de aplicaciones V·Comm.

Item
Type
Severity
Description
nativeMessaging
Permission
High
This permission enables communication with applications installed on your computer. Rated High because it can exchange data with native programs, potentially exposing system-level information and local files.
background
Permission
Medium
This permission allows continuous background operation. Rated Medium because it can perform actions without user awareness, consume system resources, and maintain persistent connections.
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.

The `externally_connectable` manifest key is set to match all URLs (`*://*/*`), which allows any webpage on the internet to directly invoke `chrome.runtime.sendMessage` targeting this extension. Combined with the `nativeMessaging` permission and the background message handler that launches native executables, any website can trigger arbitrary local program execution on the user's machine without any user confirmation.

manifest.json (Line 11)
{  "externally_connectable": {    "matches": [      "*://*/*"    ]  },  "content_scripts": [    {      "js": [        "data/content/content.js"      ],      "matches": [        "<all_urls>"      ]    }  ]}

The `launchApp`, `launchAppScanner`, and `launchAppPrinter` functions build native-app command-line parameter strings by direct string concatenation of values sourced from web page DOM elements (`element.idProceso`, `element.uriUpSig`, `element.docs`, etc.) with no sanitization or escaping. A malicious webpage can inject arbitrary arguments into the native process by embedding command-separator characters or flag overrides, enabling parameter injection into the signed-document or scanner executable.

service-worker.js (Line 115)
launchApp: function(element) {    ...    case 1: var _app = VExec.app_path + "\\" + VExec.app_exe;    var _param =      '--idProceso="' +      element.idProceso +      '" --uriUpSig="' +      element.uriUpSig +      '" --imgFirma="' +      element.imgFirma +      '" --docs="' +      element.docs +      '" --uriDown="' +      element.uriDown +      '" --uriUp="' +      element.uriUp +      '" --version="1"';    var message = {      app: _app,      param: _param    };    VExec.port.postMessage(message, function(res) {

The `chrome.runtime.onMessage` handler in the service worker unconditionally trusts the `action` field of incoming messages to trigger `connectNative()` and launch executables, without verifying that the message originates from a trusted internal extension page. Because `externally_connectable` allows all origins, external web pages can directly send `open-sign-app`, `open-scanner-app`, or `open-printer-app` messages to this handler and invoke the native host.

service-worker.js (Line 481)
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {      switch (request.action) {        case "init-app":          VBackgroundFirma.addElements(request.element);          VExec.lastTab = null;          break;        case "open-sign-app":          VLogAdd("Orden para abrir la aplicación de firma");          VExec.lastTab = parseInt(sender.tab.id);          VBackgroundFirma.openApp(request.id);          break;        case "open-scanner-app":          VLogAdd("Orden para abrir la aplicación de escaner");          VExec.lastTab = parseInt(sender.tab.id);          VBackgroundFirma.openAppScanner(request.id);          break;        case "open-printer-app":          VLogAdd("Orden para abrir la aplicación de impresora");          VExec.lastTab = parseInt(sender.tab.id);          VBackgroundFirma.launchAppPrinter(request.id);          break;

The content script, injected into every page (`<all_urls>`), listens for custom DOM events (`vcomm-add-object`, `vcomm-launch-object`, `vcomm-scan-objects`) dispatched by the hosting page. Any website can fire these events with attacker-controlled payloads to register arbitrary signing elements and then trigger native application launches—providing a DOM-level attack surface that bypasses any external-messaging controls.

data/content/content.js (Line 290)
// Evento que buscar los nuevos objetos de firmadocument.addEventListener('vcomm-add-object', function(e) {  if (!Array.isArray(VFirmaPrototype.elements)) {    VFirmaPrototype.elements = new Array();  }  VFirmaPrototype.elements.push([e.detail]);  chrome.runtime.sendMessage({    from: 'content',    action: 'init-app',    element: [e.detail]  });}, true);// Evento que buscar los nuevos objetos de firmadocument.addEventListener('vcomm-launch-object', function(e) {      if (typeof e.detail !== "object") {        console.warn("Event require 'type (vsign, vscanner, vprinter) and id' (01)");      }      switch (e.detail.type) {        case "vsign":          chrome.runtime.sendMessage({            from: 'content',            action: 'open-sign-app',            id: e.detail.id          });          break;

The extension's options page contains a hardcoded download link to an external Windows executable (`VSign.exe`) hosted on `update.vcomm.es`. This promotes installation of an unverified native binary from an external server directly from within the extension UI; if the host is compromised or the extension is cloned maliciously, users could be directed to download malware.

data/config/config.html (Line 217)
<a href="https://update.vcomm.es/appupdates/vsign/VSign.exe" target="_Blank" style="font-size: 1.2em">  Descargar aplicación nativa < /a>

All extension activity logs—including app paths, executable names, document signing URIs, and scan parameters—are written to `chrome.storage.sync`, which synchronises data across all of the user's Chrome browser instances. Sensitive operational details (document upload URIs, process IDs, file paths) are thus exfiltrated to Google's sync infrastructure and may be accessible from other devices or by extensions with `storage` read access.

service-worker.js (Line 12)
function VLogAdd(msg) {  VLog.push(new Date() + ": " + msg);  chrome.storage.sync.set({    log: VLog  });}

By severity

Critical3
High1
Medium2
Low0

Versions scanned

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

Extension VersionCode Review Findings
1.0.06

Files with findings

4 distinct paths — top paths by unique finding count:

  • service-worker.js3
  • data/config/config.html1
  • data/content/content.js1
  • manifest.json1
S.No.
Category
Severity
File
Summary
Found in Version
1Code Injection
critical
service-worker.js (line 115)The `launchApp`, `launchAppScanner`, and `launchAppPrinter` functions build native-app command-line parameter strings by direct string concatenation of values sourced from web page DOM elements (`element.idProceso`, `…
2Privilege Escalation
critical
manifest.json (line 11)The `externally_connectable` manifest key is set to match all URLs (`*://*/*`), which allows any webpage on the internet to directly invoke `chrome.runtime.sendMessage` targeting this extension. Combined with the `nat…
3Privilege Escalation
critical
service-worker.js (line 481)The `chrome.runtime.onMessage` handler in the service worker unconditionally trusts the `action` field of incoming messages to trigger `connectNative()` and launch executables, without verifying that the message origi…
4Privilege Escalation
high
data/content/content.js (line 290)The content script, injected into every page (`<all_urls>`), listens for custom DOM events (`vcomm-add-object`, `vcomm-launch-object`, `vcomm-scan-objects`) dispatched by the hosting page. Any website can fire these e…
5Remote Code Loading
medium
data/config/config.html (line 217)The extension's options page contains a hardcoded download link to an external Windows executable (`VSign.exe`) hosted on `update.vcomm.es`. This promotes installation of an unverified native binary from an external s…
6Unauthorized Data Collection
medium
service-worker.js (line 12)All extension activity logs—including app paths, executable names, document signing URIs, and scan parameters—are written to `chrome.storage.sync`, which synchronises data across all of the user's Chrome browser insta…
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.

getbootstrap.com-http://getbootstrap.com
github.com/twbs/bootstrap/blob/master/LICENSEhttps://github.com/twbs/bootstrap/blob/master/LICENSE
github.com/h5bp/html5-boilerplate/blob/master/src/css/main.csshttps://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css
www.veridata.es-http://www.veridata.es/
veridata.es-http://veridata.es
update.vcomm.es/appupdates/vsign/VSign.exehttps://update.vcomm.es/appupdates/vsign/VSign.exe
clients2.google.com/service/update2/crxhttps://clients2.google.com/service/update2/crx
192.168.100.........rmat=json&batch=3868-http://192.168.100.........rmat=json&batch=3868

Gain full insight into all external connections.

Upgrade for full visibility.

No IP addresses found
Version
Size
Is Malicious
Findings
Permhash
0.2.7
Latest
0.04 MB
Malicious
1.0.0
0.08 MB
Malicious
6
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.