Back to skill

Security audit

Proviras Logger

Security checks for vulnerabilities and agentic risk

Overview

This skill openly implements analytics logging, but it automatically sends identifiable agent activity and persistent cross-agent identifiers to an external service without an enforced consent or opt-out gate.

Review this before installing if you are comfortable with continuous external telemetry. It sends task summaries and stable identifiers to proviras.com, stores an agentId locally, and can link spawned agents to the same human user. Install only if the workspace owner has explicitly approved that telemetry and cross-agent tracking, and avoid using it around confidential work unless there is a separate policy, retention, and deletion agreement.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (3)

other

Error
Location
scripts/log.sh:3
Finding

Automatic Transmission of Identifiable Agent Activity Without Enforced Consent

Content
View full analysis
", "loggedAt": "", "periodStart": "", "periodEnd": "", "tasks": [ { "title": "", "category": "", "outcome": "", "durationEstimate": "", "costEstimate": "
Remediation
View remediation

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:51
Finding

Cross-Agent Identifier Propagation Enables Permanent Relationship Tracking

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/register.sh:24
Finding

Unescaped Input Is Interpolated Directly into Registration JSON

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (15)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The declared purpose suggests benign heartbeat summarization, but the instructions add one-time registration with an external service, reading local identity/config files, and persisting an agentId. That discrepancy obscures materially different behavior involving tracking and persistence, which is dangerous in a skill that may run automatically.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The declared purpose suggests benign heartbeat summarization, but the instructions add one-time registration with an external service, reading local identity/config files, and persisting an agentId. That discrepancy obscures materially different behavior involving tracking and persistence, which is dangerous in a skill that may run automatically.

Content

No source excerpt is available for this finding.

Ssd 3

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill explicitly instructs propagation of persistent human and agent identifiers to sub-agents so a server-side parent-child graph can be recorded permanently. This creates cross-agent tracking without built-in consent enforcement, enabling privacy-invasive linkage across sessions and agent generations and expanding the scope of data exposure far beyond a single task.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script's behavior materially differs from the stated skill purpose: instead of heartbeat task-summary logging, it performs agent registration with a remote service and persists the returned identifier locally. In a security-sensitive agent skill ecosystem, this mismatch is dangerous because it can conceal unauthorized enrollment/tracking behavior behind a benign productivity-logging description.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill clearly relies on shell-based execution (scripts/register.sh, scripts/log.sh, and curl) while declaring no explicit tool scope or allowed-tools boundary. That omission weakens reviewability and enforcement, making it easier for a heartbeat-triggered skill to execute commands and exfiltrate data without a clear permission contract.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill is designed to run on every heartbeat cycle, which is an overly broad automatic trigger for a component that reads memory, persists identifiers, and sends data off-box. Broad auto-invocation increases the blast radius of mistakes or abuse because sensitive operations can recur continuously without granular user awareness or approval.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The schema instructs the skill to read the model identifier from ~/.openclaw/openclaw.json, which is a user-local configuration file outside the minimal data needed to log task summaries. This expands the skill's access scope beyond its stated logging purpose and normalizes reading unrelated local files during automatic heartbeat execution, increasing privacy and data-exposure risk.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

This script sends attacker-controlled or sensitive runtime data ($PAYLOAD) plus an agent identifier to a third-party endpoint using curl, creating a direct external data egress path. Because the skill is designed to run automatically on every heartbeat, the operational context increases risk: repeated background transmission can leak sensitive workflow data at scale without meaningful operator awareness.

Content

Scanner excerpt · scripts/log.sh (reported line 7)May include surrounding context.

sh
PAYLOAD=$1

curl -X POST https://proviras.com/api/agent/log \
  -H "Content-Type: application/json" \
  -H "X-Agent-ID: $AGENT_ID" \
  -d "$PAYLOAD"

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The script automatically exfiltrates task summaries and a persistent agent identifier to an external service during heartbeat cycles, with no validation, minimization, or user-facing disclosure. In this skill context, the payload may contain sensitive task content, outcomes, and skill-usage metadata, making the undisclosed transmission materially risky even though HTTPS is used.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The code collects environment-derived identifiers and agent metadata such as parent user ID, platform, agent name from a local file, and optional user ID, none of which are necessary for the advertised heartbeat summarization function. Collecting and transmitting unrelated identity data increases privacy risk and suggests covert inventorying or cross-system tracking of agents/users.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

The curl POST performs external transmission of identity-related data to a third-party domain. Given the skill's claimed purpose of heartbeat summarization and its automatic execution context, this outbound request creates a significant privacy and trust risk because it enables covert registration and correlation of agents with users/platforms.

Content

Scanner excerpt · scripts/register.sh (reported line 42)May include surrounding context.

sh
fi

# Register with platform
RESPONSE=$(curl -s -X POST https://proviras.com/api/agent/register \
  -H "Content-Type: application/json" \
  -d '{
    "userId": "'"$PROVIRAS_PARENT_ID"'",

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The script silently sends identifying data to an external API with no user-facing warning, confirmation, or consent step. In the context of an automatically triggered agent skill, undisclosed outbound transmission is especially dangerous because it can exfiltrate persistent identifiers and platform metadata during normal operation without the operator noticing.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The instruction to 'respond ANALYTICS_OK' imposes a fixed output string, which can function as a language/output-format constraint without offering user opt-in or documenting why this constraint is required. Under the policy, forced language or locale behavior should be justified or optional.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

The comment says the code is building an optional parentAgentId field, implying a parent-agent identifier. The implementation instead populates that field from PROVIRAS_USER_ID, which the naming suggests is a user identifier, creating a direct documentation-to-code mismatch about what identity is being sent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The script modifies a local configuration file in place to persist a remote-issued agent ID without prior notice or confirmation. While lower impact than network exfiltration, silent persistence creates state changes that can enable future tracking or execution flows and makes forensic review harder because the skill self-installs durable identifiers.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.