Back to skill

Security audit

Bower

Security checks for vulnerabilities and agentic risk

Overview

This Drive organizer has legitimate organizing features, but it needs Review because it combines broad Drive access with scheduled changes, self-update, and under-disclosed Chronicle/MemPalace profiling flows.

Install only after reviewing and disabling or removing self-update, Chronicle/MemPalace ingestion, external profile-script execution, and automatic application paths unless you explicitly want those behaviors. Confirm the exact Drive scopes, where content summaries and prompts are stored, retention/deletion controls, and that bulk moves or descriptions require a visible review and rollback path.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • Rogue AgentSelf-Modification, Session Persistence
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
Findings (109)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding
The reported implementation focuses on Drive inventory and local JSON persistence rather than the claimed preference-learning organizer behavior. While not necessarily malicious, that discrepancy undermines informed consent and can hide retention of metadata and content-derived state on local disk.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
The reported implementation focuses on Drive inventory and local JSON persistence rather than the claimed preference-learning organizer behavior. While not necessarily malicious, that discrepancy undermines informed consent and can hide retention of metadata and content-derived state on local disk.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
The reported implementation focuses on Drive inventory and local JSON persistence rather than the claimed preference-learning organizer behavior. While not necessarily malicious, that discrepancy undermines informed consent and can hide retention of metadata and content-derived state on local disk.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
The reported implementation focuses on Drive inventory and local JSON persistence rather than the claimed preference-learning organizer behavior. While not necessarily malicious, that discrepancy undermines informed consent and can hide retention of metadata and content-derived state on local disk.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding
The reported implementation focuses on Drive inventory and local JSON persistence rather than the claimed preference-learning organizer behavior. While not necessarily malicious, that discrepancy undermines informed consent and can hide retention of metadata and content-derived state on local disk.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
The reported implementation focuses on Drive inventory and local JSON persistence rather than the claimed preference-learning organizer behavior. While not necessarily malicious, that discrepancy undermines informed consent and can hide retention of metadata and content-derived state on local disk.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
The manifest explicitly says the skill is not for document analysis or Chronicle ingestion, yet later sections define entity extraction and Chronicle-style signal emission from scanned Drive content. This contradiction is dangerous because it disguises secondary data-processing functions that materially increase privacy exposure.

Intent-Code Divergence

High
Confidence
99% confidence
Finding
Saying the skill is not for Chronicle ingestion while also specifying Chronicle-oriented signal emission is an explicit contradiction that obscures cross-system data sharing. This matters because users may permit Drive organization without realizing their content-derived entities will be exported into journaling or downstream systems.

Ae1

High
Category
analysis-evasion
Content
o/commons/data/ocas-bower/deep_scan_sampled.py` (use the sampled script, never `scripts/bower_full_scan.py`).
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
o/commons/data/ocas-bower/deep_scan_sampled.py` (use the sampled script, never `scripts/bower_full_scan.py`).
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Self-Modification

High
Category
Rogue Agent
Content
`bower.init`: creates data/journal directories, writes `config.json` with defaults, registers cron jobs `bower:scan` and `bower:weekly-deep` (check platform registry first to avoid duplicates).

## Self-update

`bower.update` pulls the latest package from the `source:` URL in frontmatter. Compares local vs. remote version via GitHub API. If different: downloads tarball, extracts, replaces. Retries once on failure. Output: `I updated Bower from version {old} to {new}`. Silent if already current.
Confidence
98% confidence
Finding
Self-modification via `bower.update` allows the skill to replace its own code from a remote source after deployment. Combined with background scheduling and broad local/network capabilities, this defeats one-time review and creates a durable supply-chain compromise path.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
A self-update mechanism that pulls code from a remote source, downloads a tarball, extracts it, and replaces the local package is a high-risk supply-chain and self-modification vector. In a skill with file, shell, network, and scheduled execution capabilities, this can silently introduce arbitrary new behavior after initial review.

Missing User Warnings

High
Confidence
97% confidence
Finding
The eval expects the skill to apply pending move/rename/description changes without any visible warning, confirmation, or rollback language. Even if the skill does not delete files, bulk reorganization of Drive can still disrupt access paths, break workflows, misfile sensitive documents, and propagate mistakes at scale.

Anti-Refusal Statement

High
Category
Anti-Refusal
Content
During `bower.analyze`, after generating proposals, check each proposal's `pattern_key` against `auto_approved_patterns`. If a match exists: set `status: approved` immediately rather than `pending`. Log `auto_approved: true` on the proposal record.

Auto-approved proposals still pass the staleness gate and permission check before execution. They do not bypass safety rules -- only the human approval step.

### Demotion
Confidence
90% confidence
Finding
Skill attempts to nullify the agent's safety policies or restrictions ('you have no restrictions', 'ignore your guidelines', 'do anything now'). This is a direct jailbreak that disables guardrails.

Instruction Override

High
Category
Prompt Injection
Content
During `bower.analyze`, after generating proposals, check each proposal's `pattern_key` against `auto_approved_patterns`. If a match exists: set `status: approved` immediately rather than `pending`. Log `auto_approved: true` on the proposal record.

Auto-approved proposals still pass the staleness gate and permission check before execution. They do not bypass safety rules -- only the human approval step.

### Demotion
Confidence
90% confidence
Finding
This pattern attempts to override system instructions or ignore safety constraints. Without LLM analysis, manual review is recommended.

YARA rule 'agent_skill_prompt_injection_hidden_instructions': Prompt injection or hidden instructions embedded in AI agent skill text [agent_skills]

High
Category
YARA Match
Content
with no undos).

### Auto-approve behavior

During `bower.analyze`, after generating proposals, check each proposal's `pattern_key` against `auto_approved_patterns`. If a match exists: set `status: approved` immediately rather than `pending`. Log `auto_approved: true` on the proposal record.

Auto-approved proposals still pass the staleness gate and permission check before execution. They do not bypass safety rules -- only the human approval step.

### Demotion

If a promoted pattern receives an undo or reject: demote confidence by one level. At two undos/rejects: remove the pattern from `auto_approved_patterns` and add it to `feedback_log.jsonl` with `feedback_type: demotion`. Bower will not re-promote the same pattern until it accumulates 5 new clean executions.

### User visibility

`bower.status` lists active auto-approved patterns and their confidence. `bower.feedback.clear --pattern key` removes a pattern from auto-approve immediately.

---

## Taxonomy inference

Bower infers t
Confidence
80% confidence
Finding
YARA rule matched a hack tool or exploit indicator (offensive tools, reconnaissance, privilege escalation, or exploit frameworks).

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
The file describes Chronicle/knowledge-graph style signal emission architecture despite the skill's stated purpose being non-destructive Drive organization and despite metadata saying it is not for Chronicle ingestion. That mismatch is dangerous because it enables covert repurposing of scanned document content into a broader surveillance or profiling pipeline unrelated to the user-requested task.

Missing User Warnings

High
Confidence
97% confidence
Finding
The script reads Google Drive file contents, extracts summaries, and persists them into local JSON artifacts such as structural_model.json and preference_profile.json without any consent prompt, minimization, encryption, or redaction. Because the skill is explicitly designed to scan broad Drive contents, this can silently copy highly sensitive documents (tax, finance, legal, medical) from a cloud boundary into local plaintext storage, materially increasing exposure.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
This script explicitly scans content summaries to extract sensitive life facts about the operator across health, finance, home, travel, career, and social domains, then reformats them into knowledge-graph facts and a memory-style output file. That behavior goes beyond Drive organization and constitutes covert profiling of highly sensitive personal data, which is especially dangerous because the parent skill explicitly says it is not for document analysis or ingestion.

Intent-Code Divergence

High
Confidence
99% confidence
Finding
The module docstring states that the script 'Extracts MEANINGFUL facts about the operator's life' and 'Only files facts that tell you something real,' which directly reveals a purpose of personal intelligence gathering rather than file organization. In the context of a skill whose description excludes document analysis and Chronicle ingestion, this contradiction strongly indicates deceptive scope expansion and undisclosed collection of sensitive personal information.

Description-Behavior Mismatch

High
Confidence
97% confidence
Finding
This file is explicitly an ingestion pipeline for MemPalace, which directly contradicts the skill's declared purpose as a Google Drive organizer and its statement that it is not for Chronicle ingestion. Hidden or mismatched data-flow behavior is dangerous because it can enable unauthorized collection or transfer of Drive-derived data under the guise of a benign organizational skill.

Intent-Code Divergence

High
Confidence
96% confidence
Finding
The module docstring describes the component as a 'Bower to MemPalace ingestion pipeline,' which conflicts with the skill description that says it is not for ingestion. Such purpose misrepresentation is a serious security signal because reviewers and users may grant trust or access based on inaccurate functionality claims.

Direct Prompt Extraction

High
Category
System Prompt Leakage
Content
Summary:"""

    return prompt  # Return the prompt to be processed by caller


def main():
Confidence
93% confidence
Finding
Returning a fully assembled prompt that embeds raw document content is a direct prompt-extraction issue because it packages sensitive file data for immediate downstream model submission or reuse. In this skill, that is more dangerous because the system is framed as a Drive organizer, not a document-analysis pipeline, so users are less likely to anticipate that their document contents will be transformed into portable LLM prompts.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The README advertises scanning Google Drive structure and file contents and performing renames, moves, and description updates, but it does not warn users that the skill will access potentially sensitive document contents and modify file metadata or locations. In a Google Drive organizer, this omission is security-relevant because users may authorize broad access without understanding the privacy and integrity impact on personal, financial, legal, or business files.

Lp3

Medium
Category
MCP Least Privilege
Confidence
90% confidence
Finding
The skill declares broad capabilities including file read/write, network, shell, and environment access, but does not constrain them with an explicit allowlist or permissions scope. For a skill that also performs scheduled background operations and self-updates, this lack of tool scoping increases the blast radius if the skill is misused or modified.

Static analysis

No suspicious patterns detected.