Back to skill

Security audit

articuler

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for generating outreach content, but it requires sending user and target LinkedIn data plus objectives to Articuler without clear privacy, consent, retention, or token-handling guidance.

Before installing, users should understand that their email, verification code, LinkedIn profile URL, target contacts' LinkedIn URLs, and outreach goals may be sent to Articuler. Avoid submitting sensitive contacts or regulated business information unless you are comfortable with that provider's data handling, and treat any returned token as a secret.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (13)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs the agent to collect and transmit the user's email address, verification code, and LinkedIn profile URL to a third-party service without any explicit privacy notice, consent language, or explanation of how the data will be used, stored, or shared. Because the workflow requires these identifiers before any core functionality is available, users may disclose sensitive personal and professional data without informed consent.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This endpoint transmits the user's email address to an external service as part of the verification flow. External transmission is expected for the feature, but it remains security-relevant because the skill does not pair the transfer with clear disclosure, consent, or handling guidance for personal data.

Content

Scanner excerpt · SKILL.md (reported line 28)May include surrounding context.

Send a verification code to the user's email address.

bash
curl --location --request POST 'https://api.articuler.ai/user/send-check' \
--header 'Content-Type: application/json' \
--data '{
  "email": "your@email.com",

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

This endpoint transmits the user's email address to an external service as part of the verification flow. External transmission is expected for the feature, but it remains security-relevant because the skill does not pair the transfer with clear disclosure, consent, or handling guidance for personal data.

Content

Scanner excerpt · SKILL.md (reported line 28)May include surrounding context.

Send a verification code to the user's email address.

bash
curl --location --request POST 'https://api.articuler.ai/user/send-check' \
--header 'Content-Type: application/json' \
--data '{
  "email": "your@email.com",

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

This login call sends the user's email, one-time verification code, and LinkedIn profile URL to an external service and returns a reusable token. The combination of identity data and token issuance increases exposure if the service is untrusted, if the token is mishandled, or if users are not clearly informed about the external authentication flow.

Content

Scanner excerpt · SKILL.md (reported line 52)May include surrounding context.

Log in with the user's email, captcha code, and LinkedIn profile URL. Returns a token required for all subsequent API calls.

bash
curl --location --request POST 'https://api.articuler.ai/user/artclaw/login' \
--header 'Content-Type: application/json' \
--data '{
  "email": "your@email.com",

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

This login call sends the user's email, one-time verification code, and LinkedIn profile URL to an external service and returns a reusable token. The combination of identity data and token issuance increases exposure if the service is untrusted, if the token is mishandled, or if users are not clearly informed about the external authentication flow.

Content

Scanner excerpt · SKILL.md (reported line 52)May include surrounding context.

Log in with the user's email, captcha code, and LinkedIn profile URL. Returns a token required for all subsequent API calls.

bash
curl --location --request POST 'https://api.articuler.ai/user/artclaw/login' \
--header 'Content-Type: application/json' \
--data '{
  "email": "your@email.com",

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill processes a target contact's LinkedIn profile URL and associated professional profile data through a third-party API without warning the user that they are submitting another person's personal data for analysis. This creates privacy and compliance risk because third-party contact data may be processed without authorization or lawful basis, especially in regulated environments.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
93% confidence
Finding

This request sends a token, a target contact's LinkedIn URL, and the user's objective to a third-party service for profiling and content generation. The context makes this more sensitive than a generic API call because it involves third-party personal data and user business intent, neither of which is accompanied by a clear warning or data-use limitation.

Content

Scanner excerpt · SKILL.md (reported line 86)May include surrounding context.

Submit a playbook generation job for the current user and a target contact. This is an async API — it returns a sessionId immediately. Use Step 4 to poll for the result.

bash
curl --location --request POST 'https://api.articuler.ai/user/artclaw/playbook' \
--header 'Content-Type: application/json' \
--data '{
    "token": "xxx",

External Transmission

Medium
Category
Data Exfiltration
Confidence
93% confidence
Finding

This request sends a token, a target contact's LinkedIn URL, and the user's objective to a third-party service for profiling and content generation. The context makes this more sensitive than a generic API call because it involves third-party personal data and user business intent, neither of which is accompanied by a clear warning or data-use limitation.

Content

Scanner excerpt · SKILL.md (reported line 86)May include surrounding context.

Submit a playbook generation job for the current user and a target contact. This is an async API — it returns a sessionId immediately. Use Step 4 to poll for the result.

bash
curl --location --request POST 'https://api.articuler.ai/user/artclaw/playbook' \
--header 'Content-Type: application/json' \
--data '{
    "token": "xxx",

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 125)May include surrounding context.

Poll this endpoint repeatedly until status is "done". When done, read the playbook content from the response.

bash
curl --location --request GET 'https://api.articuler.ai/user/artclaw/playbook/info?sess_id=xxx' \
--header 'Content-Type: application/json'

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 292)May include surrounding context.

Poll this endpoint repeatedly until status is "done". When done, read the playbook content from the response.

bash
curl --location --request GET 'https://api.articuler.ai/user/artclaw/playbook/info?sess_id=xxx' \
--header 'Content-Type: application/json'

External Transmission

Medium
Category
Data Exfiltration
Confidence
93% confidence
Finding

This cold-email generation request sends a token, target LinkedIn URL, and outreach objective to an external service, enabling analysis of another person's profile and generation of persuasive messaging. While aligned with the stated feature, it still presents privacy and data governance risk because sensitive contextual data is transmitted without strong disclosure or policy constraints.

Content

Scanner excerpt · SKILL.md (reported line 253)May include surrounding context.

Submit a cold email generation job. Same async pattern as Steps 3–4: returns a sessionId immediately, use Step 6 to poll for the result.

bash
curl --location --request POST 'https://api.articuler.ai/user/artclaw/coldemail' \
--header 'Content-Type: application/json' \
--data '{
    "token": "xxx",

External Transmission

Medium
Category
Data Exfiltration
Confidence
93% confidence
Finding

This cold-email generation request sends a token, target LinkedIn URL, and outreach objective to an external service, enabling analysis of another person's profile and generation of persuasive messaging. While aligned with the stated feature, it still presents privacy and data governance risk because sensitive contextual data is transmitted without strong disclosure or policy constraints.

Content

Scanner excerpt · SKILL.md (reported line 253)May include surrounding context.

Submit a cold email generation job. Same async pattern as Steps 3–4: returns a sessionId immediately, use Step 6 to poll for the result.

bash
curl --location --request POST 'https://api.articuler.ai/user/artclaw/coldemail' \
--header 'Content-Type: application/json' \
--data '{
    "token": "xxx",

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill's intent detection section defines trigger keywords only in Chinese, which imposes a language-specific behavior without user opt-in or explanation. That can disadvantage users operating in other languages and constitutes a natural-language locale policy concern under the stated rules.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.