Back to skill

Security audit

No Cap

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent bookmark-digest purpose, but it asks for live X session cookies, browser/Keychain access, and persistent credential storage with under-scoped safety controls.

Review carefully before installing. This skill may be useful for X bookmark processing, but you should only use it if you are comfortable granting access to live X session cookies, storing those cookies locally, and trusting an external CLI implementation that was not included in the reviewed artifact. Prefer a version with scoped OAuth or secure secret prompting instead of browser-cookie extraction and command-line token entry.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (3)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:33
Finding

X Session Credentials Exposed Through Command-Line Arguments

Content
View full analysis
``` ``` The same insecure command pattern is repeated at `SKILL.md:480-484`. ### Technical Analysis The Skill directs the Agent to interpolate the user's X `auth_token` and `ct0` cookie values directly into a shell command. Command-line arguments are not a secure secret-transfer mechanism. Depending on the operating system and execution environment, they can be exposed through: - Shell history files - Process inspection utilities - Terminal transcripts - Agent execution logs - Endpoint monitoring and audit systems - Error reports that record complete commands The `auth_token` is a reusable session credential. Although the Skill requires the resulting configuration file to have mode `600`, those permissions do not protect credentials while they are present in process arguments or retained in shell and Agent logs. ### Attack Path 1. The user obtains `auth_token` and `ct0` from Chrome. 2. The Agent substitutes both credentials into the documented `update-cookies` command. 3. The shell, Agent runtime, process monitor, or audit system records or exposes the complete command. 4. A local user, malicious process, log reader, or compromised monitoring component retrieves the cookie values. 5. The attacker reuses the captured session credentials to make authenticated requests to X, subject to X's session validation and other account controls. ### Impact Assessment Successful exploitation can disclose the user's active X session credentials. An attacker may be able to impersonate the authenticated session and access account data or perform actions allowed ...[truncated 310 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
SKILL.md:25
Finding

Unpinned Runtime Package Execution Through npx

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:27
Finding

Automatic Browser Cookie Extraction Requests Excessive and Unverifiable Credential Access

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Rogue AgentSelf-Modification, Session Persistence
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (17)

YARA rule 'info_stealer': Information stealer patterns (credential harvesting, browser data theft) [malware]

High
Category
YARA Match
Confidence
97% confidence
Finding

The skill contains multiple information-stealer-like behaviors: extracting cookies from Chrome, instructing users to copy session tokens, and reusing those tokens to access an account. Context matters here: although the stated purpose is bookmark ingestion rather than theft, the mechanism is still dangerous because it relies on harvesting and persisting browser-derived authentication secrets.

Content

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

p

Extract signal from noise. Pulls your recent X/Twitter bookmarks, filters out marketing/spam/engagement bait, and extracts actionable intelligence. Dual output: structured markdown for agents, HTML email digest for humans.

Commands

  • /no-cap — Process new bookmarks (main loop)
  • /no-cap setup — Configure ingestion method, auth, output directory
  • /no-cap auto-login — Extract X cookies from Chrome (recommended, one-time)
  • /no-cap status — Show stats and last run info
  • /no-cap update-cookies — Update X session cookies when they expire (without re-running full setup)

Setup Flow (/no-cap setup)

Guide the user through configuration:

  1. Sign into X — Detect the user's platform and guide accordingly:

    macOS users — Run the auto-login command:

    bash
    cd {repoPath} && npx tsx src/cli.ts auto-login
    

    This extracts X cookies from Chrome automatically. macOS will prompt for Keychain access — click Allow.

    **Windows / Linux us

Credential Access

High
Category
Privilege Escalation
Confidence
99% confidence
Finding

The auto-login flow explicitly extracts X cookies from Chrome and instructs the user to approve Keychain access. That is credential-access behavior: it reaches into browser-stored authentication material to obtain reusable session tokens, which is highly sensitive even if intended for convenience.

Content

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

bash
   cd {repoPath} && npx tsx src/cli.ts auto-login

This extracts X cookies from Chrome automatically. macOS will prompt for Keychain access — click Allow.

Windows / Linux users — Auto-login is macOS only. Guide them through the manual method:

  1. Open Chrome → go to x.com

Ssd 3

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The manual and automatic cookie-handling instructions operationalize extraction and reuse of live authentication tokens in plain language, including directing users to copy auth_token and ct0 values. Those are session secrets; if intercepted, mishandled, or logged, they can allow unauthorized access to the user's X account until revoked or expired.

Content

No source excerpt is available for this finding.

Ssd 3

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill directs the agent to read a credential-bearing config and use it as ongoing operational context, creating a path for secrets to persist in agent memory, logs, artifacts, or follow-on outputs. Even though the config file is chmod 600, that does not protect against exposure through the agent layer once the secrets are loaded and reused.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
99% confidence
Finding

This troubleshooting path again directs users to run the cookie-extraction flow and approve Keychain access, reinforcing a repeated credential-access pattern. Repetition in operational guidance makes the behavior more dangerous because it normalizes repeated re-extraction of live secrets during routine support flows.

Content

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

md
**"Not logged into X" or "Missing auth_token"**
- Run: `cd {repoPath} && npx tsx src/cli.ts auto-login`
- macOS will prompt for Keychain access — click Allow
- If auto-login fails, manually copy cookies from Chrome DevTools and run `update-cookies`

**"X API returned 400" or "X authentication failed"**

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill asks users to provide live X session cookies and a Resend API key, then stores them, but does not prominently warn that these are sensitive credentials that can grant account access or enable abuse if exposed. In a user-invocable skill, normalizing the collection of reusable secrets without a clear security warning increases the chance of unsafe handling, accidental disclosure, or overbroad user consent.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
90% confidence
Finding

Persisting session credentials in ~/.no-cap/config.json creates a durable local secret store that may be copied in backups, exposed to other tools, or mistakenly read by the agent later. File mode 600 helps at the filesystem boundary, but persistent storage still increases exposure duration and blast radius if the host or account is compromised.

Content

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

  • Ask for their Resend API key (free at https://resend.com — 100 emails/day on free tier)
    • No MCP plugins or heavy dependencies needed
  1. Write config to ~/.no-cap/config.json using the Write tool. Set file permissions to 600 (owner-only read/write) since it contains session credentials. Make sure repoPath is set in the config to the directory where no-cap is installed.

  2. Test run — Do a test fetch to verify credentials work:

    bash

Static analysis

No suspicious patterns detected.