Is Pragmaz for WhatsApp™ Web safe?
We analyzed Pragmaz for WhatsApp™ Web version 2.4's actual code and gave it a 42/100 trust score. This is a powerful WhatsApp assistant with meaningful…
Bottom line
This is a powerful WhatsApp assistant with meaningful privacy and security concerns, but no demonstrated downloaded-code execution or clear malicious intent.
What it can access
It can read and alter WhatsApp chats, contacts, media, and automation data, while also sending selected information to the vendor or configured destinations.[Q1][Q3][Q6]
Security weaknesses
A page can invoke privileged storage, network, webhook, and WhatsApp-data deletion actions without a trusted-source or user-action check.[Q21][Q18]
Signs of misuse
The extension automatically reports usage linked to a persistent installation ID and WhatsApp number, and remote settings can influence messaging behavior.[Q8][Q13][Q16]
Code findings
What access does this extension ask for, and does that access make sense for what it claims to do?
It requests persistent storage, browser-data deletion, request-header modification, and access to WhatsApp and Pragmaz sites. That breadth mostly supports its advertised multi-account, automation, theme, export, and AI features, but it gives the extension extensive control over WhatsApp Web.
Declares storage, unlimitedStorage, browsingData, declarativeNetRequest, WhatsApp/Pragmaz host access, and scripts in both isolated and MAIN worlds on all WhatsApp frames. — manifest.json:19-78
Which websites can it run on, and can it read or change what appears on those pages?
It reads and changes WhatsApp Web's page, internal application modules, chats, contacts, groups, and media. This is central to its advertised features rather than evidence of covert surveillance by itself.
Uses WhatsApp's internal modules for contacts, messages, labels, media, automation, and AI-assisted chat features. — js/public/95167cdc.js:49-55,1018-1066,37255-37257
Can it see sensitive information you type, such as passwords, payment details, messages, or form entries?
It can process message text, contact numbers, media, group data, and automation data. AI and webhook features can send selected content to the vendor or a user-configured destination.
Builds vendor AI requests from chat transcripts/media and dispatches webhook payloads from WhatsApp automation features. — js/public/95167cdc.js:49-51,1066,37255-37257
Forwards webhook bodies and multiple messaging/media payloads to network destinations. — js/d6e49f19.js:26
Can it access private browser data such as cookies, signed-in sessions, browsing history, bookmarks, or downloads?
It stores licenses, phone-linked settings, account sessions, automation data, files, telemetry queues, and vendor services credentials in extension storage. Multi-account frames receive filtered records, but the top page bridge can request arbitrary stored keys.
Implements large local/session storage bridges and persists telemetry and per-account data. — js/ba44c317.js:34,46
Stores signed API credentials plus phone, license, and plan records. — js/public/95167cdc.js:49-51,875
Can it access anything else on your device, such as files, location, camera, microphone, clipboard, or installed applications?
It downloads, converts, uploads, and copies WhatsApp media and text for visible sharing, export, transcription, and reply features. These operations are feature-related and generally require a user action or configured automation.
Implements media upload/download, audio transcription, export, and clipboard-backed reply tools. — js/public/95167cdc.js:49-55,37255-37257
Does it send information outside your browser? If so, what information is sent, where does it go, and why?
It sends phone-linked telemetry, feature events, AI inputs, media, reports, licenses, and automation data to Pragmaz services. User-configured webhooks can also send message-derived data to another destination.
Uploads vendor API requests and automatic telemetry containing an installation ID, WhatsApp number, plan, and filtered event properties. — js/ba44c317.js:34,46
Performs vendor API calls, report uploads, media operations, and user-configured webhook POSTs. — js/d6e49f19.js:26
Does it download or run code, settings, or instructions supplied by a remote server?
It downloads server-stored flows, webhook settings, AI results, licenses, and personal automation settings. These values influence messaging behavior, but no server response was shown becoming executable JavaScript.
Fetches flow, personal-assistant, webhook, license, and AI-related data from Pragmaz endpoints. — js/d6e49f19.js:26
Consumes authenticated vendor responses as configuration and feature data. — js/public/95167cdc.js:49-51,1018-1066
Can it take actions without a clear user request, such as opening pages, redirecting searches, downloading files, or sending requests?
Automatic telemetry starts when WhatsApp Web loads and sends queued usage events and periodic heartbeats. It includes a generated installation ID and the user's WhatsApp number, even though obvious message-content fields are filtered out.
Starts a telemetry session, derives the WhatsApp number from localStorage, queues interaction events, and POSTs them automatically to ext.pragmaz.ai. — js/ba44c317.js:46
Can it change important browser settings, including your proxy, search engine, homepage, privacy settings, or other extensions?
No evidence of this behavior was found in the reviewed package.
Active declarative network rules alter WhatsApp request and response security headers. — rules.json:51-190,235-380
Is any important behavior difficult to inspect because the code is hidden, heavily obfuscated, dynamically generated, or supplied by third parties?
Most application code is heavily bundled and minified, which makes review difficult. Readable strings, module boundaries, and behavior remain present, so deliberate packing or encrypted code was not demonstrated.
Contains a roughly 15.7 MB minified application bundle with preserved feature names and endpoints. — js/public/95167cdc.js:1-37258
Does it use eval(), new Function(), or string-based timers to turn text into executable code?
No evidence of this behavior was found in the reviewed package.
Contains the chart-library GeoJSON Function constructor and fixed global-object helper constructors; no reachable remote source was identified. — js/public/a8936a96.js:50,965
Does it track the websites, pages, searches, or links you visit?
It knows the current WhatsApp page URL and sends the URL and referrer in one feature-metrics path. It does not request general browsing-history access or observe unrelated sites.
An A/B metrics payload includes document.referrer and window.location.href with browser environment details. — js/public/95167cdc.js:813
Site access and content scripts are limited to WhatsApp and Pragmaz hosts. — manifest.json:38-67
Does it create a persistent ID or browser fingerprint to recognize you?
It creates a persistent installation identifier and automatically associates usage events with the user's WhatsApp phone number, extension version, and plan. Message-like fields are filtered, which reduces but does not remove the privacy impact.
Generates and stores an installation ID, reads the WhatsApp number, filters likely content fields, and uploads usage events. — js/ba44c317.js:46
Does it send cookies, session details, authentication data, or page contents elsewhere?
It can clear WhatsApp cookies and local session data and operates inside the signed-in WhatsApp page. It stores a vendor services secret and license, but no code was shown reading or sending WhatsApp cookie values or credentials to an unintended party.
The limpageral path deletes WhatsApp cookies and site data; it does not read their values. — js/d6e49f19.js:26
Stores a vendor-issued device secret and signs API requests with HMAC. — js/public/95167cdc.js:49-51
Does it record typing, form entries, clipboard contents, or screenshots?
It reads WhatsApp messages, contacts, media, and the message composer to provide summaries, reply suggestions, exports, and automation. I did not find a general keystroke logger; AI transmission occurs when those features or configured automations are used.
Builds chat transcripts, downloads media, requests AI processing, and writes selected suggestions into the WhatsApp draft field. — js/public/95167cdc.js:49-55,37255-37257
Can a website or remote server send commands that make the extension take actions?
Server-stored flows, smart-webhook settings, and AI responses can influence messaging and page behavior. Signed device requests protect many newer services calls, but older vendor services and page-event routes do not consistently use that safeguard.
Fetches remote flow, personal automation, webhook, and AI data that the packaged page code consumes. — js/d6e49f19.js:26
Signs newer API requests with a device secret and applies returned service data to extension features. — js/public/95167cdc.js:49-51,1018-1066
Does it alter links, referral codes, advertisements, shopping carts, or search results?
No evidence of this behavior was found in the reviewed package.
Patches page storage/cache behavior and installs theme and multi-account UI logic in the MAIN world. — js/e37b6155.js:22-35
Implements extensive WhatsApp controls, message/media features, and draft editing. — js/public/95167cdc.js:49-55,37255-37257
Does it redirect or modify web traffic, request headers, downloads, or proxy settings?
It performs many network requests, uploads and downloads media, supports arbitrary user-configured webhook destinations, and rewrites WhatsApp network headers. No browser proxy permission is requested.
Contains vendor API, media, report, and configurable webhook network operations. — js/d6e49f19.js:26
Rewrites Origin and Referer and changes cross-origin response headers for WhatsApp and Pragmaz traffic. — rules.json:235-380
Can it communicate with software on the computer or services running on localhost?
No evidence of this behavior was found in the reviewed package.
Declares no nativeMessaging or file-system host permission. — manifest.json:19-78
Does it decode, decrypt, or unpack hidden data and then execute or inject it?
No evidence of this behavior was found in the reviewed package.
Injects only packaged scripts and bridges vendor data requests; no remote script URL is assigned to a script element. — js/ba44c317.js:34
Dynamic Function calls exist in libraries, but no remote source-to-sink path was demonstrated. — js/public/a8936a96.js:50,965
Can ordinary websites access privileged extension features through messaging or exposed files?
The WhatsApp page can invoke extension storage and background operations with named CustomEvents, without a nonce, trusted-source check, or user-presence check.
Registers unauthenticated page-event handlers for storage reads/writes, network requests, reports, webhooks, and limpageral, then forwards them to extension APIs. — js/ba44c317.js:34
Accepts the forwarded limpageral runtime message without validating sender frame or user action and deletes WhatsApp browser data. — js/d6e49f19.js:26
Does suspicious behavior activate only for certain users, websites, dates, or remote settings?
No evidence of this behavior was found in the reviewed package.
Checks plan and feature flags, loads remote automation settings, and exposes user controls for AI and messaging features. — js/public/95167cdc.js:49-55,875,1018-1066,37255-37257
Starts telemetry automatically rather than behind a demonstrated consent gate. — js/ba44c317.js:46
Does it perform hidden resource-intensive work, such as cryptocurrency mining?
No evidence of this behavior was found in the reviewed package.
The declared and observed functionality concerns WhatsApp enhancement, storage, networking, automation, and media processing. — manifest.json:19-78
Does it change form fields or where a form sends its information?
It writes AI-generated text into the WhatsApp message composer and can send messages through configured automation. The suggestion UI states that a suggestion is inserted as a draft and is not sent by itself; no form-action rewrite to an unrelated site was found.
Generates reply suggestions, offers a visible 'Use in field' action, and writes the selected text into the WhatsApp draft composer. — js/public/95167cdc.js:37255-37257