Is AuthoredUp – No. 1 LinkedIn ™ Content Tool safe?
We analyzed AuthoredUp – No. 1 LinkedIn ™ Content Tool version 7.2.1's actual code and gave it a 52/100 trust score. This is a LinkedIn-focused tool with…
Bottom line
This is a LinkedIn-focused tool with justified access, but its broad page capabilities, data sharing, and unprotected page bridge create meaningful risk.
What it can access
It can read and change LinkedIn posts, profiles, analytics, and drafts, then send this data to its service and analytics provider.[Q1][Q2][Q6][Q12]
Security weaknesses
Any code running in a LinkedIn page can send commands that edit or publish through the extension without verifying who sent them.[Q21]
Signs of misuse
The extension sends LinkedIn content, full page addresses, account details, and usage data to its service and analytics providers.[Q6][Q12][Q13][Q14]
Code findings
What access does this extension ask for, and does that access make sense for what it claims to do?
It requests storage plus access to LinkedIn pages. That scope supports its advertised LinkedIn composer, draft, profile and analytics tools.
Runs content scripts only on LinkedIn, explicitly excludes login routes, declares storage and grants only LinkedIn host access. — manifest.json:22-76, 96-104
Makes the main-world guest script and packaged JSON files web-accessible on all URLs. — manifest.json:78-94
Which websites can it run on, and can it read or change what appears on those pages?
It reads and changes LinkedIn pages, including the post composer, drafts, media, profile information and analytics views. This is limited to LinkedIn and is central to the advertised product, rather than unexplained access to unrelated sites.
Injects the host application only on LinkedIn pages. — manifest.json:22-76, 102-104
PassengerRPCHandler exposes LinkedIn composer get/set content, artifact and media operations, navigation, post details and publishing. — js/guest_script.js:13
Coordinates LinkedIn post data, profile details, follower statistics, connections and company records with the AuthoredUp application. — js/host_script.js:102
Can it see sensitive information you type, such as passwords, payment details, messages, or form entries?
It can read text and media the user puts into LinkedIn's post composer and store drafts with AuthoredUp. No password, payment-field or LinkedIn login-page collection was found; login pages are excluded and AuthoredUp's own sign-in is sent to its own service.
Excludes LinkedIn login routes from both injected content-script groups. — manifest.json:27-31, 53-57
Exposes getShareBoxContent and setShareBoxContent for the LinkedIn composer. — js/guest_script.js:13
Implements AuthoredUp draft, blueprint and publish synchronization around LinkedIn composer content. — js/host_script.js:102
Can it access private browser data such as cookies, signed-in sessions, browsing history, bookmarks, or downloads?
The injected main-world code uses the user's existing LinkedIn session to call LinkedIn services and reads LinkedIn's CSRF token internally. It has no cookies, history, bookmarks or downloads permission, and no path sending the LinkedIn cookie or CSRF token to AuthoredUp was found.
Declares storage and LinkedIn host access only, with no cookies, history, bookmarks or downloads permission. — manifest.json:99-104
Uses LinkedIn passenger services, GraphQL operations and the current CSRF token for same-origin LinkedIn requests. — js/guest_script.js:11-13
Can it access anything else on your device, such as files, location, camera, microphone, clipboard, or installed applications?
Users can select images and documents for LinkedIn posts, and the extension uploads those chosen files through AuthoredUp's depository service. It has no background access to arbitrary device files, location, camera, microphone, native applications or screen capture.
Implements composer media/document selection and uploads through the configured AuthoredUp depository endpoint. — js/host_script.js:102
Declares no geolocation, capture, camera, microphone, native-messaging or filesystem permission. — manifest.json:99-104
Does it send information outside your browser? If so, what information is sent, where does it go, and why?
It sends LinkedIn posts, drafts, profile details, follower statistics, connections, companies and analytics to AuthoredUp for the connected content-management account. It also sends account and usage telemetry to OpenPanel, errors to Sentry, and GIF searches to Giphy when used.
Calls AuthoredUp API methods for LinkedIn posts, advanced statistics, profile details, follower statistics, connections and companies. — js/host_script.js:102
Configures OpenPanel at op.authoredup.com and identifies users by profile ID, name and email. — js/vendor.js:2554
Production configuration names backend.authoredup.com, depository.authoredup.com, Giphy and a Sentry DSN. — js/background_script.js:1-21
Does it download or run code, settings, or instructions supplied by a remote server?
AuthoredUp supplies account data, drafts, product configuration and feature settings that affect the interface and available behaviors. That is normal for the connected service.
Loads AuthoredUp account records, drafts, configuration and feature state from its backend. — js/host_script.js:102
OpenPanel session-replay support is bundled but instantiated with sessionReplay.enabled false. — js/vendor.js:2554
Can it take actions without a clear user request, such as opening pages, redirecting searches, downloading files, or sending requests?
Publishing and composer changes are tied to visible user workflows. After the user connects an account, the extension also synchronizes LinkedIn analytics and product telemetry without a separate prompt for every event.
Publishing waits for and invokes the LinkedIn composer publish action as part of AuthoredUp's finishing flow. — js/host_script.js:102
Provides a Disable AuthoredUp control that removes it from LinkedIn and turns off integrations while preserving the account and stored data. — js/host_script.js:2989
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.
Declares only storage and LinkedIn host access, with no browser-settings, search, proxy or privacy permission. — manifest.json:99-104
Is any important behavior difficult to inspect because the code is hidden, heavily obfuscated, dynamically generated, or supplied by third parties?
The application is shipped as large minified bundles with many third-party libraries, which reduces auditability. Readable service names, methods, routes and production settings remain present.
Lists about 11.3 MB unpacked, led by vendor.js and host_script.js. — inventory.json:1
Is minified but retains readable AuthoredUp API method names, UI text, routes and feature labels. — js/host_script.js:1-3032
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.
A bundled utility evaluates only the fixed literal return this as an old-runtime global-object fallback. — js/vendor.js:2554
Contains the same packaged utility fallback; reviewed network responses are consumed as structured product data, not executable text. — js/host_script.js:102
Does it track the websites, pages, searches, or links you visit?
While active on LinkedIn, it reports product screen views to OpenPanel with the complete current LinkedIn URL, including path, query and fragment. This can reveal which profiles, posts or analytics views the user visits.
Calls trackScreenView with browserUrl set to window.location.href plus route path, search, hash, surface and authentication status. — js/host_script.js:102
Configures OpenPanel with sessionReplay.enabled false and automatic screen views disabled; the host still sends explicit screen-view events. — js/vendor.js:2554
Limits runtime page access to LinkedIn. — manifest.json:22-76, 102-104
Does it create a persistent ID or browser fingerprint to recognize you?
It stores an installation ID and identifies the signed-in AuthoredUp user to OpenPanel by account ID, name, email, license and organization properties. Sentry events can also include installation and account identifiers.
OpenPanel identify uses profileId, first/last name, email and account/license properties. — js/vendor.js:2554
Uses a persisted installationId in AuthoredUp requests and error context. — js/host_script.js:102
Does it send cookies, session details, authentication data, or page contents elsewhere?
LinkedIn posts, drafts, profile records, follower analytics and other page-derived data are sent to the AuthoredUp service the user connected. Full LinkedIn URLs and AuthoredUp identity go to OpenPanel.
Sends LinkedIn-derived post, profile, follower, connection, company and analytics records to backend.authoredup.com. — js/host_script.js:102
Sends explicit screen-view events containing the full LinkedIn browserUrl to OpenPanel. — js/host_script.js:102
Uses the LinkedIn CSRF token for same-origin LinkedIn calls; no reviewed path forwards that token to AuthoredUp or analytics. — js/guest_script.js:11-13
Does it record typing, form entries, clipboard contents, or screenshots?
It reads and writes LinkedIn composer content and handles user-selected media so it can save drafts and publish posts. This is visible, feature-related collection rather than background keylogging.
Exposes get/set share-box content, artifacts and media to the AuthoredUp host application. — js/guest_script.js:13
Implements draft saving, media handling and user-triggered LinkedIn publishing flows. — js/host_script.js:102
Can a website or remote server send commands that make the extension take actions?
AuthoredUp's backend controls product data and feature configuration, but no server response can replace or execute packaged JavaScript. Separately, any script already executing in the same LinkedIn page can send commands through the unauthenticated bridge and invoke exposed composer or publishing methods.
Accepts matching postMessage requests from the page and dispatches the supplied handler path and arguments without an origin, source or secret-token check. — js/guest_script.js:10
Exposes composer setters, triggerPublishPost, configuration changes and generic containerGet/containerSet/containerCall methods. — js/guest_script.js:13
Does it alter links, referral codes, advertisements, shopping carts, or search results?
No evidence of this behavior was found in the reviewed package.
Contains visible AuthoredUp navigation and help links but no affiliate, cart or search-result rewrite flow. — js/host_script.js:1-3032
Does it redirect or modify web traffic, request headers, downloads, or proxy settings?
No evidence of this behavior was found in the reviewed package.
Declares no proxy, webRequest, declarativeNetRequest or downloads permission. — manifest.json:99-104
Can it communicate with software on the computer or services running on localhost?
No evidence of this behavior was found in the reviewed package.
Embeds live production endpoints and DEPLOYMENT_TARGET live. — js/background_script.js:1-21
Declares no nativeMessaging permission. — manifest.json:99-104
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 the packaged js/guest_script.js obtained through chrome.runtime.getURL. — js/host_preload_script.js:1
Contains bundled encoding, parsing and serialization libraries but no reviewed remote-to-code execution flow. — js/vendor.js:1-3115
Can ordinary websites access privileged extension features through messaging or exposed files?
The active main-world RPC server trusts any same-page message with a public sigil and handler name. It does not verify event origin/source or a secret, and it dispatches caller-selected paths to methods that read or edit the composer, publish a post and generically access LinkedIn's dependency container.
Injects guest_script.js into LinkedIn's main page context at document start. — js/host_preload_script.js:1
Uses targetOrigin *, listens on window, accepts the public aup.RPCBridge sigil and passenger identifier, and dispatches the requested path and arguments without authenticating the sender. — js/guest_script.js:10
PassengerRPCHandler exposes get/set composer content, triggerPublishPost, routing, config changes and generic containerGet/containerSet/containerCall. — js/guest_script.js:13
Limits automatic bridge injection to LinkedIn and excludes login pages, constraining the reachable scope. — manifest.json:22-76
Does suspicious behavior activate only for certain users, websites, dates, or remote settings?
No evidence of this behavior was found in the reviewed package.
Restricts content scripts to LinkedIn and excludes login routes. — manifest.json:22-76
Uses AuthoredUp configuration, license, membership and feature flags to control available product surfaces. — js/host_script.js:102
Does it perform hidden resource-intensive work, such as cryptocurrency mining?
No evidence of this behavior was found in the reviewed package.
Shows large application/vendor bundles but no worker, WebAssembly or mining-specific artifact. — inventory.json:1
Does it change form fields or where a form sends its information?
It intentionally reads and edits LinkedIn's post-composer fields and media as its core feature. No code was found changing arbitrary website form destinations or redirecting submitted credentials.
Exposes LinkedIn share-box content, artifact and media setters plus publishing. — js/guest_script.js:13
Restricts page modification to LinkedIn and excludes LinkedIn login pages. — manifest.json:22-76, 102-104