Is CommenTron — AI Booster for LinkedIn safe?
We analyzed CommenTron — AI Booster for LinkedIn version 1.3.20's actual code and gave it a 55/100 trust score. This LinkedIn commenting assistant has…
Bottom line
This LinkedIn commenting assistant has purpose-related access, but broad page reach, local login-data storage, and service reporting reduce trust.
What it can access
It can read and change all LinkedIn pages, store account data, and send selected content to its service for generation. [Q1] [Q2] [Q3] [Q6]
Security weaknesses
Login details are kept in local extension storage, and generated text is inserted into LinkedIn editors. [Q14] [Q24]
Signs of misuse
The service receives post, profile, account, and engagement information for generation, tracking, and error reporting. [Q3] [Q6] [Q13]
Code findings
What access does this extension ask for, and does that access make sense for what it claims to do?
It can read and edit every LinkedIn page and use scripting and local extension storage.
Loads its content script on all linkedin.com paths and requests LinkedIn host access, scripting, and storage. — manifest.json:21-48
Which websites can it run on, and can it read or change what appears on those pages?
It reads LinkedIn feed posts, comments, author names, profile links, activity identifiers, and the user's profile details.
PostScraper, CommentScraper, ReplyScraper, and profiler selectors extract post text, comment text, authors, URNs, profile name, image, and public identifier. — contents.e7997a5d.js:1
Can it see sensitive information you type, such as passwords, payment details, messages, or form entries?
For AI generation it sends the selected LinkedIn post and author details to RocketPod; replies also include the selected comment and the user's display name.
generateComment posts postAuthor, postText, engagee, activity URN, preferences, seat, and subscriber ID; generateReply additionally posts commentText and me to services.rocket-pod.ai. — contents.e7997a5d.js:1
Can it access private browser data such as cookies, signed-in sessions, browsing history, bookmarks, or downloads?
It stores account credentials, tokens, profile data, preferences, and automation settings locally, but has no general browser-history or bookmarks permission.
AccountModel and the storage middleware serialize account, profile, preference, UI, and automation objects into chrome.storage.local. — popup.68feda32.js:1
Requests storage and scripting, not history or bookmarks. — manifest.json:26-29
Can it access anything else on your device, such as files, location, camera, microphone, clipboard, or installed applications?
No evidence of this behavior was found in the reviewed package.
Declares none of the relevant device or file permissions. — manifest.json:26-29
Does it send information outside your browser? If so, what information is sent, where does it go, and why?
It sends generation inputs, account identifiers, engagement records, and some error telemetry to RocketPod's service; no unrelated recipient was found.
The API client posts to services.rocket-pod.ai endpoints for authentication, generation, engagement, plans, automation, usage, and error logging. — contents.e7997a5d.js:1
Uses the same RocketPod endpoints for popup account and configuration actions. — popup.68feda32.js:1
Does it download or run code, settings, or instructions supplied by a remote server?
RocketPod supplies plan, quota, automation-list, version, and generated-comment data, but not executable JavaScript.
The fixed API client retrieves priming data, latest version, plan, usage statistics, automation lists, and completion text from services.rocket-pod.ai. — contents.e7997a5d.js:1
Can it take actions without a clear user request, such as opening pages, redirecting searches, downloading files, or sending requests?
It continuously scans LinkedIn for comment controls and refreshes profile data, but generation is gated by the saved enabled switch and a user click in the reviewed flow.
Registers LinkedIn Comment and Reply buttons every second; createComment and createReply immediately return unless UIModel.enabled is true. — contents.e7997a5d.js:1
UIModel.enabled defaults false and is controlled from the popup. — popup.68feda32.js:1
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.
Requests no browser-settings or network-settings permission. — manifest.json:26-29
Is any important behavior difficult to inspect because the code is hidden, heavily obfuscated, dynamically generated, or supplied by third parties?
No evidence of this behavior was found in the reviewed package.
Parcel bundle retains module names, class names, endpoint names, and readable application logic. — contents.e7997a5d.js:1
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.
Remote responses are treated as JSON or generated text; code execution remains packaged. Unsanitized HTML insertion is reported separately as page manipulation, not confirmed code execution. — contents.e7997a5d.js:1
Does it track the websites, pages, searches, or links you visit?
No evidence of this behavior was found in the reviewed package.
Builds engagement URLs from activity URNs or window.location and extracts LinkedIn profile identifiers from links. — contents.e7997a5d.js:1
Does it create a persistent ID or browser fingerprint to recognize you?
After a user submits a generated response, it reports the LinkedIn engagement URL, type, profile name, image URL, and sign-in state to RocketPod.
peep posts seat, me, imageUrl, isSignIn, engagementType, and engagementUrl; engaged posts profile/activity identifiers and whether automation was involved. — contents.e7997a5d.js:1
logFrontError can send the current page URL, browser, OS, stack, subscriber ID, and LinkedIn seat when non-client errors occur. — contents.e7997a5d.js:1
Does it send cookies, session details, authentication data, or page contents elsewhere?
It uses LinkedIn's JSESSIONID as a CSRF header only in a request back to LinkedIn, and it stores RocketPod login credentials and tokens locally. No credential theft is demonstrated.
Reads JSESSIONID from document.cookie and sends it as csrf-token to linkedin.com/voyager/api/me with LinkedIn credentials included; only the resulting public identifier is retained. — contents.e7997a5d.js:1
The password field dispatches setPassword on blur; middleware serializes the full AccountModel, including password, accessToken, and refreshToken, to chrome.storage.local and successful login does not clear the password. — popup.68feda32.js:1
Does it record typing, form entries, clipboard contents, or screenshots?
It reads its own RocketPod password field and LinkedIn contenteditable comment areas, but no general keystroke logger or unrelated form capture was found.
Reads the extension's explicit sign-in password field on blur for authentication and local persistence. — popup.68feda32.js:1
Locates LinkedIn comment editors to insert generated responses; no document-wide key event collection exists. — contents.e7997a5d.js:1
Can a website or remote server send commands that make the extension take actions?
No evidence of this behavior was found in the reviewed package.
All API endpoints and actions are fixed in packaged code; generated text reaches a page editor through the separately reported innerHTML sink. — contents.e7997a5d.js:1
Does it alter links, referral codes, advertisements, shopping carts, or search results?
No evidence of this behavior was found in the reviewed package.
generateComment returns response data, and pasteComment assigns that value directly to the contenteditable element's innerHTML when typing simulation is disabled. — contents.e7997a5d.js:1
The normal flow fills the editor and then waits for the separate LinkedIn submit button click; active script execution from injected markup was not demonstrated. — contents.e7997a5d.js:1
Does it redirect or modify web traffic, request headers, downloads, or proxy settings?
No evidence of this behavior was found in the reviewed package.
Requests only storage, scripting, and LinkedIn host access, with no webRequest, declarativeNetRequest, proxy, or downloads permission. — manifest.json:26-29,47-48
Can it communicate with software on the computer or services running on localhost?
No evidence of this behavior was found in the reviewed package.
Requests no nativeMessaging permission. — manifest.json:26-29
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.
Fixed HTTPS endpoints return generation results, plan, quota, version, statistics, and automation-list data used by packaged logic. — contents.e7997a5d.js:1
Can ordinary websites access privileged extension features through messaging or exposed files?
No evidence of this behavior was found in the reviewed package.
Declares no externally_connectable entry. — manifest.json:1-49
The content script directly attaches packaged handlers to LinkedIn DOM controls; it does not relay arbitrary window messages to privileged APIs. — contents.e7997a5d.js:1
Does suspicious behavior activate only for certain users, websites, dates, or remote settings?
No evidence of this behavior was found in the reviewed package.
UIModel.enabled defaults false and the popup controls tone, length, mentions, emojis, questions, services, language, voice, typing speed, and automation settings. — popup.68feda32.js:1
Comment and reply creation return without reading or sending post content unless the stored enabled value is true. — contents.e7997a5d.js:1
Does it perform hidden resource-intensive work, such as cryptocurrency mining?
No evidence of this behavior was found in the reviewed package.
Background work consists of DOM scanning, profile refresh, UI behavior, and API calls. — contents.e7997a5d.js:1
Does it change form fields or where a form sends its information?
It writes generated text into LinkedIn comment and reply inputs, but does not change form destinations or submit them in the ordinary reviewed flow.
pasteComment and pasteReply fill div[role=textbox]; the code then adds a listener to the separate submit button instead of clicking it. — contents.e7997a5d.js:1