Back to skill

Security audit

Agency Agents Openclaw

Security checks for vulnerabilities and agentic risk

Overview

This prompt-only agent pack is mostly transparent, but it needs review because it encourages autonomous workflows and includes reusable infrastructure examples with unsafe defaults.

Review before installing. Use it as a prompt/persona pack, but require explicit approval before deployments, public posts, report sending, or sensitive-data processing. Replace example credentials, plaintext services, and mutable dependency tags before using generated templates, and handle ClawHub tokens outside shared terminals or repository files.

Vulnerability Patterns
  • 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
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
Findings (5)

T09 · Insecure Skill Coding Practices

Warning
Location
agents/engineering/backend-architect.md:211
Finding

Hardcoded Weak PostgreSQL Credentials in Reusable Deployment Template

Content
View full analysis

Vulnerability Details

File Location: agents/engineering/backend-architect.md, lines 211-237
Vulnerability Type: Hardcoded credentials and insecure secret management
Risk Level: Medium

Vulnerable Code

yaml
auth-service:
  build: ./auth-service
  ports:
    - "3001:3001"
  environment:
    - DATABASE_URL=postgresql://user:pass@postgres:5432/auth
    - JWT_SECRET=${JWT_SECRET}
    - REDIS_URL=redis://redis:6379

product-service:
  build: ./product-service
  ports:
    - "3002:3002"
  environment:
    - DATABASE_URL=postgresql://user:pass@postgres:5432/products
    - ELASTICSEARCH_URL=http://elasticsearch:9200

order-service:
  build: ./order-service
  ports:
    - "3003:3003"
  environment:
    - DATABASE_URL=postgresql://user:pass@postgres:5432/orders
    - KAFKA_BROKERS=kafka:9092

postgres:
  image: postgres:15-alpine
  volumes:
    - postgres_data:/var/lib/postgresql/data
  environment:
    - POSTGRES_USER=user
    - POSTGRES_PASSWORD=pass

Technical Analysis

The reusable Docker Compose example embeds the predictable database credentials user:pass in three connection strings and repeats the password in the PostgreSQL service configuration. These values are not placeholders enforced through external secret injection; the configuration is directly usable as written.

Hardcoded credentials frequently propagate into generated projects, source-control repositories, CI logs, deployment manifests, and container inspection output. Because the Skill is designed to generate backend architectures and deployment guidance, users may treat this template as an acceptable implementation rather than a development-only demonstration.

The same database identity is also shared across multiple services, violating credential isolation and least-privilege principles. Compromise of one service could consequently expose every database accessible to that identity.

A

...[truncated 1189 chars]

Remediation
View remediation

Remediation Suggestions

  • Replace literal credentials with mandatory secret references:

    yaml
    environment:
      POSTGRES_USER: ${POSTGRES_USER:?POSTGRES_USER is required}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD is required}
    
  • Construct database connection strings from externally supplied secrets or use mounted secret files rather than embedding passwords in Compose manifests.

  • Create a separate database identity for each service and grant access only to the required database, schema, tables, and operations.

  • Generate high-entropy credentials through an approved secret manager.

  • Use Docker secrets, Kubernetes Secrets backed by an external secret manager, or the cloud platform's managed identity and secret facilities.

  • Prevent secrets from appearing in source control, logs, generated documentation, command histories, and container image layers.

  • Add secret scanning to CI and rotate any credential that has been deployed from this example.

  • Clearly label simplified examples as development-only and provide a secure production configuration alongside them.

T09 · Insecure Skill Coding Practices

Warning
Location
agents/engineering/backend-architect.md:245
Finding

Kafka Broker Configured with Unauthenticated Plaintext Transport

Content
View full analysis

Vulnerability Details

File Location: agents/engineering/backend-architect.md, lines 245-249
Vulnerability Type: Plaintext service communication without transport authentication
Risk Level: Medium

Vulnerable Code

yaml
kafka:
  image: confluentinc/cp-kafka:latest
  environment:
    - KAFKA_BROKER_ID=1
    - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
    - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092

Technical Analysis

The Kafka broker advertises a PLAINTEXT listener. The template does not configure TLS encryption, broker identity verification, SASL authentication, or authorization controls.

On any network where an untrusted party can reach or intercept broker traffic, messages and protocol metadata may be observed in transit. Depending on the broker's remaining defaults and network controls, an attacker may also attempt to consume messages, publish forged events, enumerate topics, or disrupt application processing.

Docker network isolation alone should not be treated as a complete security boundary, particularly in shared development hosts, CI environments, orchestrated clusters, or deployments where port exposure is subsequently added.

Attack Path

  1. The documented Kafka configuration is deployed without security hardening.
  2. An attacker obtains access to the container network, cluster network, host, or another compromised service.
  3. The attacker connects to or intercepts traffic for kafka:9092.
  4. The attacker observes plaintext application events or attempts unauthorized producer and consumer operations.
  5. Forged or modified events affect services that trust Kafka messages, while intercepted messages may disclose application or business data.

Impact Assessment

The affected scope includes all data transmitted through the Kafka broker and all services that trust broker messages. Potential impact includes event-data disclosure, fraudulent event injection, unau ...[truncated 264 chars]

Remediation
View remediation

Remediation Suggestions

  • Replace the plaintext listener with TLS-enabled listeners.
  • Configure SASL authentication using an appropriate mechanism such as SCRAM or integrate with the deployment platform's identity system.
  • Enable Kafka authorization and define least-privilege ACLs for every producer, consumer, and administrative identity.
  • Require clients to validate the broker certificate and use a trusted certificate authority.
  • Store authentication material in a secret manager rather than in committed Compose files.
  • Restrict broker access with container-network policies, host firewalls, security groups, and Kubernetes NetworkPolicies as applicable.
  • Apply message-level authorization and validation for security-sensitive workflows.
  • Document any intentionally insecure local-development configuration as unsuitable for shared, staging, or production environments.

T08 · Insecure Dependencies

Warning
Location
agents/engineering/backend-architect.md:245
Finding

Mutable Kafka Container Image Tag Creates Supply-Chain Risk

Content
View full analysis

Vulnerability Details

File Location: agents/engineering/backend-architect.md, line 245
Vulnerability Type: Unpinned third-party container dependency
Risk Level: Medium

Vulnerable Code

yaml
kafka:
  image: confluentinc/cp-kafka:latest
  environment:
    - KAFKA_BROKER_ID=1
    - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
    - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092

Technical Analysis

The latest container tag is mutable and does not identify an immutable reviewed artifact. Pulling the same Compose configuration at different times can therefore retrieve different image contents.

If an upstream release introduces a vulnerability, unexpected behavior, or a compromised artifact, the deployment may execute that image without a corresponding change to the local configuration. Even legitimate upstream updates can cause unreviewed compatibility or security changes.

Attack Path

  1. A generated deployment retains confluentinc/cp-kafka:latest.
  2. The environment pulls the image during installation, redeployment, scaling, or disaster recovery.
  3. The registry's latest reference resolves to an image that differs from the previously reviewed build.
  4. The new container executes with the Kafka service's network reach, mounted storage, environment variables, and runtime permissions.
  5. A compromised image could access broker data, steal available credentials, attack connected services, or disrupt event processing.

Impact Assessment

Exploitation could compromise the Kafka container and expose the broker's data, persistent volumes, service credentials, and reachable application network. The exact host-level impact depends on container runtime isolation, mounted resources, and deployment permissions.

In CI or production environments that automatically pull images, the mutable tag also undermines reproducibility, rollback reliability, and artifact provenance.

Remediation
View remediation

Remediation Suggestions

  • Pin the Kafka image to a reviewed version and immutable digest, for example:

    yaml
    image: confluentinc/cp-kafka:REVIEWED_VERSION@sha256:REVIEWED_DIGEST
    
  • Verify image signatures and provenance where supported.

  • Generate and retain a software bill of materials for deployed images.

  • Scan container images for known vulnerabilities before promotion.

  • Use an internal allowlisted registry or pull-through cache with admission controls.

  • Update image digests through a controlled review process rather than automatically following latest.

  • Configure deployment policies to reject mutable tags in staging and production.

T08 · Insecure Dependencies

Warning
Location
agents/engineering/devops-automator.md:70
Finding

GitHub Actions Dependency Referenced by Mutable Major-Version Tag

Content
View full analysis

Vulnerability Details

File Location: agents/engineering/devops-automator.md, lines 70-78
Vulnerability Type: Insufficiently pinned CI dependency
Risk Level: Medium

Vulnerable Code

yaml
jobs:
  security-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Security Scan
        run: npm audit --audit-level high

  test:
    needs: security-scan
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Run Tests
        run: npm test

Technical Analysis

The CI template references actions/checkout@v3 by a mutable major-version tag rather than an immutable commit SHA. A tag does not provide cryptographic assurance that future workflow executions will run the same reviewed action code.

GitHub Actions execute inside CI jobs and may access checked-out source, workflow tokens, environment variables, cached artifacts, and job-scoped secrets. Consequently, compromise or unauthorized retargeting of an action reference can become a CI code-execution and credential-exposure path.

The template also uses the mutable ubuntu-latest runner label. While normal for many workflows, this further reduces build reproducibility and should be considered in hardened environments.

Attack Path

  1. A user generates or copies the workflow with actions/checkout@v3.
  2. The referenced tag later resolves to code different from the version originally reviewed.
  3. A pull, push, or other configured workflow event starts the CI job.
  4. The changed action executes within the runner.
  5. Malicious action code attempts to read repository contents, job tokens, accessible secrets, caches, or artifacts.
  6. The attacker uses those credentials or modified artifacts to affect source repositories, packages, container images, or downstream deployments within the token's granted permissions.

Impact Assessment

Potential impact incl ...[truncated 458 chars]

Remediation
View remediation

Remediation Suggestions

  • Pin every third-party action to a full reviewed commit SHA.
  • Record the human-readable release version in an adjacent comment for maintainability.
  • Upgrade from the older major version only after reviewing the current maintained release and its migration requirements.
  • Set explicit minimum workflow permissions, such as read-only repository contents unless write access is strictly necessary.
  • Provide secrets only to jobs and steps that require them.
  • Use protected environments and approval gates for production deployments.
  • Enable dependency review, action allowlisting, and automated alerts for action updates.
  • Consider pinning the runner image or using a controlled runner image where reproducibility requirements justify it.

T08 · Insecure Dependencies

Warning
Location
agents/engineering/rapid-prototyper.md:64
Finding

Rapid-Prototyping Template Uses Mutable npm Package Version

Content
View full analysis

Vulnerability Details

File Location: agents/engineering/rapid-prototyper.md, line 64
Vulnerability Type: Mutable npm dependency selection
Risk Level: Medium

Vulnerable Code

json
{
  "dependencies": {
    "next": "14.0.0",
    "@prisma/client": "^5.0.0",
    "@supabase/supabase-js": "^2.0.0",
    "@clerk/nextjs": "^4.0.0",
    "shadcn-ui": "latest",
    "react-hook-form": "^7.0.0",
    "zustand": "^4.0.0"
  }
}

Technical Analysis

The template explicitly selects shadcn-ui using the mutable latest tag. This causes package resolution to depend on the registry state at installation time rather than a reviewed version.

npm packages can execute lifecycle scripts during installation and subsequently run within development, build, or application contexts. A compromised, replaced, or unexpectedly changed release could therefore affect developer workstations, CI runners, build artifacts, or generated applications.

Other dependencies use broad compatible-version ranges, which also permit unreviewed updates when no lockfile is present. The latest reference is the clearest instance because it intentionally follows the registry's current release without a bounded version.

Attack Path

  1. An agent generates a project using the documented dependency block.
  2. A user or CI runner installs dependencies without a previously reviewed lockfile.
  3. The registry resolves shadcn-ui@latest to the current published release.
  4. If that release or its dependency chain is compromised, malicious installation or runtime code executes.
  5. The code accesses resources available to the npm process, potentially including project files, environment variables, CI tokens, package-publishing credentials, or generated artifacts.

Impact Assessment

Potential impact includes arbitrary code execution with the privileges of the developer or CI process, theft of accessible environment secrets, so ...[truncated 373 chars]

Remediation
View remediation

Remediation Suggestions

  • Replace latest with an exact version that has been reviewed and tested.
  • Pin security-sensitive direct dependencies to exact versions rather than broad ranges where reproducibility is required.
  • Commit a lockfile and use deterministic installation commands such as npm ci.
  • Review package identity, ownership, release history, integrity metadata, and transitive dependencies before adoption.
  • Enable registry integrity verification, dependency scanning, and automated pull requests for controlled upgrades.
  • Restrict or disable npm lifecycle scripts in sensitive CI stages when they are not required.
  • Run dependency installation in an isolated environment with minimal credentials and filesystem permissions.
  • Maintain an approved-package policy for agent-generated production projects.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (81)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file presents the entire project summary in Chinese, including headings, descriptions, pricing, and launch information, with no indication that users can choose another language or locale. Under the policy for natural-language violations, forcing a specific language without user opt-in is in scope.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The guide explicitly instructs users to set a token manually but provides no warning about secure handling, such as avoiding shell history exposure, screenshots, shared terminals, or committing credentials to files. In a publication workflow, this can lead to accidental credential disclosure and unauthorized publishing or account access if the token is reused or long-lived.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file presents all operational instructions, marketing copy, and support guidance exclusively in Chinese. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is clearly documented and justified, which is not present here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill documentation is written entirely in Chinese, including headings, usage guidance, and examples, with no indication that other languages are supported or that the Chinese locale is intentional and region-specific. This creates a natural-language policy concern because it effectively imposes a specific language on users without explicit opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The file presents the skill information entirely in Chinese, including headings, feature descriptions, usage guidance, pricing, and contact sections. Under the language/locale policy, this is a natural-language constraint that does not offer an opt-in choice or explain why the skill is region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file’s natural-language interface, usage instructions, examples, and troubleshooting guidance are all written in Chinese, which effectively forces a specific language for users. The policy allows fixed-language behavior only when the skill offers opt-in language choice or clearly documents a justified regional constraint, neither of which appears here.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file presents the skill entirely in Chinese, including the description and all usage guidance, without indicating that users may choose another language or locale. This can violate a language/locale policy when a skill imposes one language by default rather than offering opt-in or alternatives.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest description and the body content are written in Chinese, presenting the skill as Chinese-language only. The file does not indicate that the language is optional or that the skill is intentionally limited to a Chinese-speaking context, which can violate language/locale policy requirements.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This file consistently presents the skill's description, role, rules, and workflow in Chinese, which imposes a specific language on users without indicating that language selection is optional. Under the language/locale policy, forcing a single language without user opt-in is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown skill appears to require Chinese for its description, instructions, and templates, which can amount to a language-policy constraint for users who do not opt into that locale. The file does not mention any language selection, fallback, or region-specific justification that would exempt it under the policy.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
82% confidence
Finding

The file presents the skill name, mission, deliverables, and closing tagline in Chinese, with no indication that users may choose another language or that the skill is intentionally restricted to a Chinese-language context. This can violate a language/locale policy when a skill imposes a language without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file’s natural-language description and headings are written in Chinese throughout, with no indication that users may choose another language or that the skill is intended only for a Chinese-speaking or region-specific context. This can violate language/locale policy when a skill implicitly mandates a language without opt-in or documented justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest description and nearly all instructional content are written in Chinese, and the file does not indicate that users may choose another language or locale. Under the stated policy, a skill that effectively constrains interaction to a specific language without opt-in is a natural-language policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The manifest description is written entirely in Chinese, and the document consistently defines the role and outputs in Chinese without offering the user a language choice. This creates a natural-language locale constraint that appears mandatory rather than optional or region-justified.

Content

No source excerpt is available for this finding.

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 · agents/engineering/backend-architect.md (reported line 89)May include surrounding context.

md
description: 电商平台 API

servers:
  - url: https://api.example.com/v1

paths:
  /products:

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The file consistently defines the skill identity, instructions, and outputs in Chinese, including the description and operational guidance, with no indication that the user can choose another language. Under the policy, forcing a specific language without opt-in is a natural-language policy violation unless the locale restriction is explicit and justified.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill includes concrete production deployment and infrastructure modification examples such as GitHub Actions deploying to Kubernetes and Terraform provisioning AWS resources, but it does not warn users about the risk of applying these actions to live environments. In an agent setting, this can normalize or encourage direct production-impacting changes without confirmation gates, staging requirements, rollback guidance, or explicit human approval, increasing the chance of outages or unintended infrastructure changes.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill description and all instructional content are written in Chinese, and the file does not indicate that the user may choose another language or locale. This creates a natural-language policy concern because it effectively fixes the interaction language without documented opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The description and all instructional content are written in Chinese, presenting the skill as operating in a specific language/locale by default. There is no indication that users may choose another language or that the Chinese-only constraint is required for a region-specific or compliance-driven purpose.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The file presents the skill entirely in Chinese, including the description and operating instructions, with no indication that language choice is optional or that the skill is intentionally limited to a Chinese-speaking context. Under the language/locale policy, forcing a specific language without user opt-in is a policy concern.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill repeatedly instructs collecting user feedback, analytics, behavior patterns, and A/B testing from day one, but provides no privacy, consent, minimization, retention, or security guidance. In a rapid-prototyping context, this omission can lead builders to deploy tracking and data collection defaults that violate privacy expectations or applicable regulations and expose unnecessary user data.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill content is written entirely in Chinese and strongly frames the agent persona, workflow, and requirements in that language without offering a language-choice mechanism or documenting a locale restriction. This can cause the agent to respond in Chinese even when the user expects another language, creating usability, miscommunication, and reviewability risks, especially in multi-language or security-sensitive workflows.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The file’s natural-language content is presented in Chinese throughout, including the description and all user-facing sections, with no indication that users can choose another language. Under the policy criteria, forcing a specific language without opt-in is a natural-language policy violation unless the locale restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The manifest and content are written as Chinese-first instructions and branding, with no indication that users may choose another language or that the skill is intentionally limited to a Chinese-speaking region. This can violate language/locale policy when a skill implicitly enforces one language without opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The description and nearly all instructional content are written exclusively in Chinese, and the file does not indicate that language selection is optional or user-configurable. Under the policy, forcing a specific language or locale without opt-in is a natural-language policy violation unless clearly justified as region-specific.

Content

No source excerpt is available for this finding.