Back to skill

Security audit

Actionbook

Security checks for vulnerabilities and agentic risk

Overview

This browser automation skill is coherent, but it needs review because it can act on logged-in websites, persist sessions, and includes unsafe credential-loading guidance.

Install only if you intentionally want agents to control browsers and interact with live websites. Use separate profiles for each site, treat profile directories and cookies like passwords, delete them when done, and require explicit confirmation before purchases, account changes, messages, posts, or other state-changing actions. Do not run `source .env` from an untrusted project; use credentials already exported by a trusted shell setup or a secrets manager.

Vulnerability Patterns
  • 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
  • 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
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
references/authentication.md:140
Finding

Unsafe Shell Execution Through Sourced Environment File

Content
View full analysis
Remediation
View remediation
&2; exit 1; } test -n "$APP_PASSWORD" || { echo "APP_PASSWORD is not set" >&2; exit 1; } actionbook browser fill "#email" "$APP_USERNAME" actionbook browser fill "#password" "$APP_PASSWORD" ``` ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/authentication.md (reported line 147)May include surrounding context.

  1. Use environment variables for credentials — source from a .env file, not inline
    bash
    # Load from .env file (avoid typing secrets in the terminal)
    source .env  # contains APP_USERNAME, APP_PASSWORD
    actionbook browser fill "#email" "$APP_USERNAME"
    actionbook browser fill "#password" "$APP_PASSWORD"
    

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/authentication.md (reported line 148)May include surrounding context.

  1. Use environment variables for credentials — source from a .env file, not inline
    bash
    # Load from .env file (avoid typing secrets in the terminal)
    source .env  # contains APP_USERNAME, APP_PASSWORD
    actionbook browser fill "#email" "$APP_USERNAME"
    actionbook browser fill "#password" "$APP_PASSWORD"
    

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill declares activation for essentially any request involving a website, which is far broader than a narrowly scoped capability trigger. Overbroad activation can cause the agent to invoke browser automation in ordinary informational requests, increasing the chance of unnecessary tool use, unintended navigation, form interaction, or exposure to prompt-injection content from external sites.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The invocation guidance repeatedly says to activate for 'anything on a website' and includes broad examples like asking how to interact with a site, which blurs the line between advice and action. In a browser-automation skill, this is more dangerous because triggering on vague website-related requests can push the agent into high-risk workflows involving external content, authenticated sessions, and live state-changing actions.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
82% confidence
Finding

The documentation explicitly encourages persistent browser profiles that preserve cookies and authenticated session state across invocations. While useful for automation, persisted sessions are sensitive artifacts equivalent to bearer credentials; if the profile directory is accessed by another local user, malware, or an overly permissive backup/sync process, an attacker may hijack authenticated sessions without knowing the password or 2FA secret.

Content

Scanner excerpt · references/authentication.md (reported line 32)May include surrounding context.

Profiles provide isolated browser sessions with separate cookies and storage. Use profiles to persist authentication across CLI invocations.

bash
# Create a dedicated profile for the target site
actionbook profile create myapp

# Login using that profile

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
80% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · references/authentication.md (reported line 156)May include surrounding context.

  1. Protect profile directories — profiles store cookies and session data on disk

    bash
    # Profile data is equivalent to passwords — restrict access
    chmod 700 ~/.config/actionbook/
    
  2. Clean up sessions after automation

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file documents cookies set, cookies delete, and cookies clear, which can alter authentication state and remove browser data, but it provides no user warning about the impact on sessions or persisted state. Under the markdown-specific SQP-2 criteria, behaviors that can affect user data or system integrity should be accompanied by warnings.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The documentation instructs users to use api.api_key and ACTIONBOOK_API_KEY but does not warn that these values are sensitive secrets that should not be shared, committed, or logged. For markdown files, omission of privacy- or integrity-related warnings around credential handling qualifies as a missing user warning.

Content

No source excerpt is available for this finding.