Back to skill

Security audit

Aade Api Monitor

Security checks for vulnerabilities and agentic risk

Overview

This skill appears purpose-aligned for Greek tax monitoring, but it asks for sensitive AADE credentials and enables external notifications/calendar actions without enough scoping or user-control detail.

Review before installing. Use only in an environment where AADE credentials can be isolated, preferably with least-privilege or dedicated credentials if AADE supports them. Enable Slack, SMS, email, and calendar integrations only after confirming exactly what data is sent, who receives it, and whether client notifications require manual approval before sending.

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
SKILL.md:6
Finding
Unnecessary Exposure of AADE Account Credentials Through Process Environment Variables## Vulnerability Details **File Location**: `SKILL.md`, line 6 and lines 13-18 **Vulnerability Type**: Sensitive credential exposure and excessive secret collection **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"openclaw": {"requires": {"bins": ["jq", "curl"], "env": ["OPENCLAW_DATA_DIR", "AADE_USERNAME", "AADE_PASSWORD"]}, "optional_env": {"SLACK_WEBHOOK_URL": "Webhook URL for urgent AADE change alerts", "SMS_GATEWAY_URL": "SMS gateway for critical compliance alerts", "GOOGLE_CALENDAR_ID": "Google Calendar ID for compliance deadline sync (optional)", "OUTLOOK_CALENDAR_ID": "Outlook Calendar ID for compliance deadline sync (optional)"}, "notes": "AADE credentials required for monitoring government portal. Slack and SMS alert channels are optional — if not configured, alerts are written to local files only."}} ``` ```bash export OPENCLAW_DATA_DIR="/data" export AADE_USERNAME="your-aade-username" export AADE_PASSWORD="your-aade-password" which jq curl || sudo apt install jq curl ``` ### Technical Analysis The skill declares an AADE username and password as mandatory environment variables and instructs users to export them into the process environment. However, the documented monitoring workflows identify only public government websites and public information such as announcements, deadlines, regulations, and system status. The project does not contain executable code or identify an authenticated endpoint that requires these credentials. Collecting high-value government account credentials without a demonstrated functional requirement violates least-secret and data-minimization principles. Environment variables are also an unsuitable broad secret boundary because they may be inherited by OpenClaw child processes, integrations, command-line utilities, or other components launched from the same runtime. Diagnostic or process-inspection facilities may expose them as well, depending on the host configuration. No direct credential theft or exfilt ...[truncated 1591 chars]
Remediation
## Remediation Suggestions 1. Remove `AADE_USERNAME` and `AADE_PASSWORD` from the mandatory environment requirements when monitoring public announcements, deadlines, regulations, and service availability. 2. Clearly document which exact feature and authenticated endpoint require credentials before collecting any secret. 3. If authentication is genuinely necessary, make it optional and separate authenticated functionality from public monitoring. 4. Use a dedicated secret manager, operating-system credential store, or narrowly scoped credential provider rather than process-wide environment variables. 5. Prefer revocable, read-only, least-privilege tokens over a primary AADE account password whenever the service supports them. 6. Pass secrets only to the specific process that requires them and explicitly remove sensitive variables from unrelated child-process environments. 7. Never include credential values in command output, logs, diagnostics, crash reports, cached files, or audit trails. 8. Define secret rotation, revocation, expiration, and incident-response procedures. 9. Add implementation tests confirming that monitoring public sources works without AADE credentials and that optional authenticated secrets cannot propagate to unrelated integrations.
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
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (14)

Chaining Abuse

High
Category
Tool Misuse
Content
export OPENCLAW_DATA_DIR="/data"
export AADE_USERNAME="your-aade-username"
export AADE_PASSWORD="your-aade-password"
which jq curl || sudo apt install jq curl
```

AADE credentials are used for authenticated read-only checks of announcements, rate changes, and system status. This skill never submits filings.
Confidence
75% confidence
Finding
Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Vague Triggers

Medium
Confidence
88% confidence
Finding
This JSON eval file contains multiple natural-language prompts that describe when the skill should act, such as monitoring websites, setting up automated monitoring, handling outages, and generating reports. The prompts are broad task descriptions and do not define specific trigger phrases, scope boundaries, or negative examples, which can lead to unintended invocation if reused as activation descriptions in a manifest-like context.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
The expectation explicitly requires 'professional Greek language notifications for accounting firms,' which imposes a language choice in the skill behavior. Similar Greek-only requirements appear elsewhere in the file without any indication that the user can select another language or opt in to Greek output.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The embedded configuration sets the alert template language to 'greek', which hard-codes a locale choice. No accompanying text indicates this is optional, configurable by the user, or justified as a documented region-specific constraint.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
This prompt and its expectations require 'professional Greek language summaries' and 'Greek language client communications' without presenting language choice. That creates a locale policy issue because the skill behavior is fixed to one language by instruction alone.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
The outage-handling scenario instructs the skill to notify affected clients 'in Greek' and expects 'urgent professional Greek language client notifications' with no opt-in. This is a direct natural-language locale constraint that lacks user choice or documented justification.

Natural-Language Policy Violations

Medium
Confidence
94% confidence
Finding
The response action configuration sets client communication language to 'greek', which fixes the locale in operational behavior. The file does not indicate that this setting is optional or adjustable by the user.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
The weekly report scenario requires creation of a management report 'in Greek' without offering a user choice of language. This is another instance of a hard-coded locale expectation in natural-language instructions.

Description-Behavior Mismatch

Medium
Confidence
79% confidence
Finding
The manifest description focuses on real-time monitoring of AADE systems, deadlines, rate changes, and compliance updates. The file also specifies capabilities such as `notify-affected-clients` (L062), `client-impact-analysis` (L061), `client-notifications` (L079), tracking which clients were notified (L416-L419), and preparing 47 emails for clients (L469-L476, L503), which moves from monitoring into client communications and operational workflow handling.

Missing User Warnings

Medium
Confidence
92% confidence
Finding
Slack webhook and SMS gateway integrations introduce third-party data transmission paths, yet the documentation does not clearly warn that compliance-related alerts may leave the local environment. Because this skill handles tax deadlines and client-impact data, insufficient disclosure increases the risk of inadvertent exposure of sensitive operational or client information.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
export OPENCLAW_DATA_DIR="/data"
export AADE_USERNAME="your-aade-username"
export AADE_PASSWORD="your-aade-password"
which jq curl || sudo apt install jq curl
```

AADE credentials are used for authenticated read-only checks of announcements, rate changes, and system status. This skill never submits filings.
Confidence
95% confidence
Finding
The setup instructions encourage use of 'sudo apt install jq curl', normalizing privileged execution during skill setup. In an adversarial or loosely controlled environment, documentation that pushes users toward elevated privileges increases the blast radius of mistakes, package-source compromise, or command substitution around installation workflows.

Intent-Code Divergence

Medium
Confidence
82% confidence
Finding
L025 explicitly frames the skill as limited to authenticated read-only checks and says it never submits filings. However, the same file documents active downstream actions such as `calendar-update --sync-changes --notify-affected-clients` (L062), `sync-calendar` (L075), and generated client notifications/emails (L469-L476, L503), so the stated intent is narrower than the described behavior.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
The line states the skill provides 'Professional alerts and reporting in Greek' as a fixed behavior. This is a natural-language locale constraint presented as mandatory rather than optional, and the document does not offer an alternative language or user opt-in.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill documents calendar synchronization and client notifications that can modify external systems or transmit potentially sensitive compliance data, but it does not prominently disclose these side effects or require explicit confirmation. In a tax/compliance context, silent outbound actions can cause privacy breaches, accidental data sharing, or unauthorized notifications to clients and third-party services.

Static analysis

No suspicious patterns detected.