Unipile Linkedin Sdk

Security checks across malware telemetry and agentic risk

Overview

Review recommended: the skill matches its LinkedIn integration purpose, but it defaults to allowing full read/write LinkedIn actions, including messages and public posts.

Install only if you intend to let an agent access LinkedIn through Unipile. Before use, set UNIPILE_PERMISSIONS=read, enable write only temporarily for a specific action, and explicitly review any message, invitation, post, comment, or reaction before it is sent.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

#
ASI02: Tool Misuse and Exploitation
Medium
What this means

An agent using this skill with a valid token could perform visible LinkedIn actions from the user's account when a task triggers those commands.

Why it was flagged

If UNIPILE_PERMISSIONS is not set, the CLI allows write-capable LinkedIn operations by default, including messaging, invitations, posting, commenting, and reacting.

Skill content
const PERMISSIONS = (process.env.UNIPILE_PERMISSIONS || 'read,write')...; const WRITE_COMMANDS = [ 'send', 'start-chat', 'invite', 'cancel-invite', 'create-post', 'comment', 'react' ];
Recommendation

Set UNIPILE_PERMISSIONS=read by default, enable write only for a specific task, and require explicit user confirmation before sending messages, invitations, posts, comments, or reactions.

#
ASI03: Identity and Privilege Abuse
Low
What this means

Anyone or any agent process with this token may be able to access or modify LinkedIn data through Unipile, depending on token and local permission settings.

Why it was flagged

The skill needs a delegated Unipile access token that can act on the user's LinkedIn account; this is expected for the integration and is disclosed, but it is sensitive authority.

Skill content
`UNIPILE_ACCESS_TOKEN` | ✅ Yes | Access token from [dashboard.unipile.com](https://dashboard.unipile.com) ... Your access token can perform actions on your behalf.
Recommendation

Use the least-privileged token available, keep it in a secret manager or environment variable, avoid committing it to files, and revoke or rotate it when no longer needed.

#
ASI07: Insecure Inter-Agent Communication
Low
What this means

Private LinkedIn messages, contacts, and profile data may enter the agent conversation or logs when these read commands are used.

Why it was flagged

The skill can retrieve LinkedIn chat messages and print them into the agent/user output path. This is purpose-aligned, but it can expose private conversation content to the current agent session.

Skill content
case 'messages': json(await client.messaging.getAllMessagesFromChat({ chat_id: params[0], limit: args.limit ? parseInt(args.limit) : undefined }));
Recommendation

Limit reads to the specific account, chat, or profile needed; avoid broad message dumps; and do not share outputs containing private LinkedIn data.

#
ASI04: Agentic Supply Chain Vulnerabilities
Low
What this means

Installing or updating dependencies from npm can change the code that handles the user's Unipile token and LinkedIn data.

Why it was flagged

The skill depends on an external npm SDK with a semver range. This is expected for a Unipile integration, and a lockfile is present, but dependency provenance still matters because the SDK handles account credentials and API calls.

Skill content
"dependencies": { "unipile-node-sdk": "^1.9.3" }
Recommendation

Install from trusted npm sources, prefer reproducible installs using the lockfile, and review dependency updates before use.