Back to skill

Security audit

Career

Security checks for vulnerabilities and agentic risk

Overview

The skill appears purpose-built for career advice, but it automatically persists sensitive career facts and inferred behavioral notes in local plaintext files without a clear opt-in, review, or deletion flow.

Install only if you are comfortable with the agent keeping a local career record under ~/Clawic/data/career/. Review those files periodically, avoid sharing salary, visa, family, or offer details you do not want stored, and delete the directory if you no longer want the skill to retain that history.

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
setup.md:11
Finding

Automatic Plaintext Persistence of Sensitive Career and Behavioral Data

Content
View full analysis

Vulnerability Details

File Location: setup.md:11-23
Related Locations: SKILL.md:22, SKILL.md:98-112, memory-template.md:3-52
Vulnerability Type: Sensitive data stored in plaintext without explicit consent or documented access controls
Risk Level: Medium

Vulnerable Code Snippet

markdown
1. Read `~/Clawic/data/career/config.yaml` if it exists. Apply its values.
2. For anything absent, use the defaults in the Configuration table of `SKILL.md` — do not ask.
   - `region: US`, `career_stage: mid`, `risk_posture: moderate`, `visa_dependent: false`.
3. Read `~/Clawic/data/career/profile.md` (comp history, market band, constraints, values, targets) and `memory.md` (observed patterns). Absence is fine; proceed without comment and create `profile.md` on the first substantive session.

Work from defaults immediately. Never open with questions about goals, comp, or how much help they want.

## Recording (only when the user reveals something)

- User states region, career stage, risk posture, or visa situation → update the matching key in `~/Clawic/data/career/config.yaml`.
- User shares comp numbers, offers, band data, constraints, values, or targets → update `profile.md`. These are the facts that make advice cumulative instead of amnesiac.
- Patterns you observe (decision style, anchors they fall for, whether they want frameworks or word-for-word scripts) → `memory.md`. An observation never overwrites a declared preference without the user's confirmation.
- User corrects earlier guidance → update the stored value so it never repeats.

The corresponding data model includes sensitive and inferred information:

markdown
## Constraints
<!-- location, remote needs, visa status, family, excluded industries -->

## Observed Patterns
<!-- decision style, anchors they fall for, confidence blind spots -->

Technical Analysis

The skill directs the agent to create and continually update Markdown and YAML files under `~/Clawic/data ...[truncated 2619 chars]

Remediation
View remediation

Remediation Suggestions

  1. Require explicit, informed opt-in before creating any persistent career record.
  2. Display the exact proposed additions and obtain confirmation before writing sensitive facts or inferred patterns.
  3. Disable persistence of behavioral inferences by default; store them only after explicit user approval.
  4. Minimize collection and avoid retaining visa, family, compensation, or offer data unless necessary for a requested ongoing workflow.
  5. Create the directory and files with owner-only permissions, such as mode 0700 for directories and 0600 for files.
  6. Prefer encrypted local storage or an operating-system-protected credential/data store for sensitive fields.
  7. Add documented commands or procedures to inspect, correct, export, and permanently delete all stored records.
  8. Define retention periods and automatically expire stale offer, compensation, and decision data.
  9. Treat stored files as untrusted input when reloaded and prevent their content from overriding system safety rules or unrelated task instructions.
  10. Clearly label inferred observations, preserve provenance and timestamps, and never allow an inference to supersede a user-declared fact without confirmation.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (6)

Hidden Instructions

High
Category
Prompt Injection
Confidence
70% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · memory-template.md (reported line 15)May include surrounding context.

md
last: YYYY-MM-DD

## Comp History
<!-- YYYY-MM · company · level · base / bonus / equity per year · notes -->

## Market Band
<!-- band with sources and date; refresh at every market check -->

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The template explicitly instructs storing sensitive career information such as compensation history, market bands, visa status, family constraints, and decision history, but provides no warning, minimization guidance, retention policy, or user-consent boundary. In a memory system for an agent, this increases the chance of over-collection and persistence of personal data that could expose financial, employment, and immigration-related details if mishandled.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

Forcing a default region of US without asking or obtaining confirmation can bias compensation, legal, and employment guidance in a domain where jurisdiction materially affects outcomes. In a career-advice skill, incorrect regional assumptions can lead to misleading salary benchmarks, notice-period advice, equity interpretation, or labor-rights guidance.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The setup explicitly instructs the skill to create and update persistent user files such as profile.md, which extends behavior beyond transient career advice into long-term data retention. Even if intended to improve continuity, storing user employment, compensation, and constraint data without an explicit user-facing consent flow increases privacy risk and creates a larger sensitive-data footprint than the manifest suggests.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The setup describes ongoing writes to local profile and memory files but the skill description does not warn users that their information will be persistently stored. Lack of transparency undermines informed consent, especially because the stored data may include salary, offers, constraints, visa status, and behavioral observations.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill stores agent-observed behavioral patterns in memory.md, including decision style and susceptibility to anchors, which constitutes profiling of the user beyond straightforward career assistance. This is dangerous because inferred behavioral traits are sensitive, may be inaccurate, and can influence future interactions without the user's knowledge or consent.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.