Back to skill

Security audit

Blogger Auto Publish Clean

Security checks for vulnerabilities and agentic risk

Overview

The skill’s Blogger publishing purpose is clear, but it needs Review because it can publish any local file path it is given and handles OAuth tokens with weak protections.

Review carefully before installing. Use only dedicated Markdown post directories, avoid letting untrusted prompts choose file paths, keep credentials.json and token.json private with restrictive permissions, do not use the webhook example without authentication, avoid copying tokens through /tmp, and pin dependencies before production use.

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 (6)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
publish.js:207
Finding

Caller-Controlled File Path Can Publish Arbitrary Local Files

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
auth.js:62
Finding

OAuth Refresh Token Is Written Without Explicit Restrictive Permissions

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
INSTALL.md:134
Finding

Update Instructions Copy OAuth Secrets Through Predictable Shared Temporary Paths

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
references/EXAMPLES.md:371
Finding

Documented Webhook Exposes an Unauthenticated Blogger Publishing Endpoint

Content
View full analysis
{ try { const { article, title, labels, draft } = req.body; // Create temporary Markdown file const tempFile = `/tmp/article-${Date.now()}.md`; const content = `--- title: "${title}" labels: "${labels || ''}" draft: ${draft || false} --- ${article}`; fs.writeFileSync(tempFile, content); // Publish const result = await publishArticle(tempFile); // Cleanup fs.unlinkSync(tempFile); res.json({ success: true, postId: result.id, url: result.url }); } catch (error) { res.status(500).json({ success: false, error: error.message }); } }); app.listen(3000, () => { console.log('Webhook server listening on port 3000'); }); ``` ### Technical Analysis The example creates an HTTP endpoint that publishes caller-supplied content using the service's Blogger authorization. It implements no authentication, authorization, signature verification, replay protection, rate limiting, request-size limit, or origin restriction. Calling `app.listen(3000)` without a host normally binds to available interfaces, potentially exposing the endpoint beyond localhost. The example also omits `const fs = require('fs')`, but adding that missing import would not address the security flaw. Temporary filenames based only on `Date.now()` are predictable and are also created without exclusive-open or permission controls. ### Attack Path 1. A user copies and deploys the documented webhook example. 2. The process has access to a valid Blogger OAuth token. 3. Port 3000 is reachabl ...[truncated 848 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
scripts/setup-blogger.sh:78
Finding

Setup Guidance Uses Mutable Latest Dependencies Without a Lockfile

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SETUP.md:29
Finding

Credential Setup Workflow Encourages Editing a Tracked Template With Real Secrets

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (88)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

This finding is the same dangerous command as above but matched on the full path rather than the generic pattern. The risk is not malicious parameter abuse by the skill itself, but unsafe documentation that encourages irreversible deletion of a local directory containing configuration and tokens.

Content

Scanner excerpt · INSTALL.md (reported line 145)May include surrounding context.

  1. Remove old version:

    bash
    rm -rf ~/.openclaw/skills/blogger-auto-publish
    
  2. Install new version using one of the methods above

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

This finding is the same dangerous command as above but matched on the full path rather than the generic pattern. The risk is not malicious parameter abuse by the skill itself, but unsafe documentation that encourages irreversible deletion of a local directory containing configuration and tokens.

Content

Scanner excerpt · INSTALL.md (reported line 145)May include surrounding context.

  1. Remove old version:

    bash
    rm -rf ~/.openclaw/skills/blogger-auto-publish
    
  2. Install new version using one of the methods above

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
96% confidence
Finding

This is the same uninstallation rm -rf command identified by a more specific matcher. It is risky because forceful recursive deletion in user-facing instructions can be misapplied and permanently remove sensitive or important local files.

Content

Scanner excerpt · INSTALL.md (reported line 196)May include surrounding context.

  1. Remove the skill directory:

    bash
    rm -rf ~/.openclaw/skills/blogger-auto-publish
    
  2. Remove environment variables from your shell profile

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
96% confidence
Finding

This is the same uninstallation rm -rf command identified by a more specific matcher. It is risky because forceful recursive deletion in user-facing instructions can be misapplied and permanently remove sensitive or important local files.

Content

Scanner excerpt · INSTALL.md (reported line 196)May include surrounding context.

  1. Remove the skill directory:

    bash
    rm -rf ~/.openclaw/skills/blogger-auto-publish
    
  2. Remove environment variables from your shell profile

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · INSTALL.md (reported line 57)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · INSTALL.md (reported line 71)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · INSTALL.md (reported line 127)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · INSTALL.md (reported line 138)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · INSTALL.md (reported line 152)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · INSTALL.md (reported line 168)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · README-v1.1.0.md (reported line 90)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · README-v1.1.0.md (reported line 129)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · README-v1.1.0.md (reported line 157)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · README.md (reported line 14)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · README.md (reported line 102)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · README.md (reported line 117)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · SETUP.md (reported line 31)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · SETUP.md (reported line 67)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · SETUP.md (reported line 116)May include surrounding context.

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

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

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

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

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

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

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

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

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

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

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

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

text

### 2. Configure Credentials
Place your `credentials.json` file in the skill directory.

### 3. Set Blog ID
```bash

Static analysis

Detected: suspicious.destructive_delete_command

Documentation contains a destructive delete command without an explicit confirmation gate.

Warn
Code
suspicious.destructive_delete_command
Location
INSTALL.md:145