Back to skill

Security audit

Baserow

Security checks for vulnerabilities and agentic risk

Overview

The skill is coherent for Baserow CRM work, but it exposes a live-looking static API token and gives unsafe instructions for handling a shared credential file and writing to live business data.

Do not install or use this version until the exposed Baserow token has been revoked and rotated, the token is removed from the skill and any package/history copies, and write examples are changed to use placeholders plus explicit confirmation before modifying live CRM rows. Avoid running the documented `cat` or `source` commands against a shared credential file.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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 (3)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:52
Finding

Hard-Coded Static Baserow API Token

Content
View full analysis
" ``` The token value is redacted in this report to avoid further disclosure. The reviewed file contains the complete plaintext credential. ### Technical Analysis The Skill embeds a concrete, real-looking personal Baserow API token in its documentation. The preceding authentication guidance describes this token as static and non-expiring. A credential stored in a distributable Skill file can be recovered by anyone with access to the package, source archive, logs, or agent context. Embedding this credential is not required for the declared Baserow CRUD functionality. The Skill metadata already declares `BASEROW_TOKEN` as a required environment variable, so the documentation should contain only a placeholder. Because the same file documents the target service, authentication header, table identifiers, and API routes, the exposed token is immediately actionable. ### Attack Path 1. An attacker obtains or reads the Skill package. 2. The attacker extracts the plaintext token from `SKILL.md`. 3. The attacker sends requests to the documented Baserow API using: ```http Authorization: Token ``` 4. The attacker enumerates, reads, creates, or modifies rows accessible to that token. 5. Because the token is described as static and without expiry, access may continue until the token is explicitly revoked. ### Impact Assessment An attacker can obtain the same Baserow privileges granted to the exposed personal API token. The exact server-side permission scope is not established by the reviewed file, but it may include unauthorized access to or modification of CRM contact ...[truncated 245 chars]
Remediation
View remediation
" ``` 4. Supply credentials exclusively through a protected secret manager or runtime environment injection. 5. Use a dedicated service credential instead of a personal token. 6. Restrict the replacement credential to only the required database and CRUD operations. 7. Prefer an expiring or regularly rotated credential where the service supports it. 8. Add automated secret scanning to prevent credentials from being committed or packaged again. ]]>

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:61
Finding

Credential Disclosure Through Full .env File Output

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:86
Finding

Arbitrary Shell Execution Through Sourcing a Shared Credential File

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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (9)

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 · SKILL.md (reported line 52)May include surrounding context.

md
- **BD Inbox** field can be used for intake linkage when that inbox object is present, but in-progress opportunity work should still live in Pipeline + Interactions.
- Keep Interactions to real sales interactions (no LinkedIn enrichment spam).

## ⚠️ Critical: .env Must Have Real Newlines

The `.env` file **must** use real newlines between vars, NOT `\n` literals:

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 · SKILL.md (reported line 71)May include surrounding context.

md
- **BD Inbox** field can be used for intake linkage when that inbox object is present, but in-progress opportunity work should still live in Pipeline + Interactions.
- Keep Interactions to real sales interactions (no LinkedIn enrichment spam).

## ⚠️ Critical: .env Must Have Real Newlines

The `.env` file **must** use real newlines between vars, NOT `\n` literals:

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 · SKILL.md (reported line 85)May include surrounding context.

md
- **BD Inbox** field can be used for intake linkage when that inbox object is present, but in-progress opportunity work should still live in Pipeline + Interactions.
- Keep Interactions to real sales interactions (no LinkedIn enrichment spam).

## ⚠️ Critical: .env Must Have Real Newlines

The `.env` file **must** use real newlines between vars, NOT `\n` literals:

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 · SKILL.md (reported line 95)May include surrounding context.

md
- **BD Inbox** field can be used for intake linkage when that inbox object is present, but in-progress opportunity work should still live in Pipeline + Interactions.
- Keep Interactions to real sales interactions (no LinkedIn enrichment spam).

## ⚠️ Critical: .env Must Have Real Newlines

The `.env` file **must** use real newlines between vars, NOT `\n` literals:

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The documentation includes a real-looking personal API token directly in the skill instructions and explicitly states it is static and non-expiring. This exposes credentials to anyone who can read the skill and enables unauthorized access and modification of remote Baserow CRM data well beyond what is necessary to document the skill.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

A specific personal API token is hard-coded in natural-language setup instructions, which is a direct secret disclosure. Because the same document also describes exact API endpoints and target tables, an attacker could immediately use the token to access or alter sensitive CRM records.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

PY

text

### Create row (use curl)
```bash
source ~/.openclaw/.env  # or export from .env
curl -s -X POST \

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill provides concrete POST and PATCH examples that write directly to production CRM tables, but it does not prominently warn that these actions modify live remote business data. In an agent setting, this increases the chance of accidental or unauthorized changes because the examples are operational and target a specific real system.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
83% confidence
Finding

The curl example transmits data and authentication material to an external Baserow instance, which is expected for this skill but still represents outbound data flow to a live remote service. In context, the danger is elevated because the endpoint is a real CRM and the example performs a write operation using bearer-style token authentication.

Content

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

Create row (use curl)

bash
source ~/.openclaw/.env  # or export from .env
curl -s -X POST \
  -H "Authorization: Token $BASEROW_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"Interaction title":"Example","Type":"Email","Sales Pipeline":[5],"Contact":[3]}' \

Static analysis

No suspicious patterns detected.