Back to skill

Security audit

furniture-fit

Security checks for vulnerabilities and agentic risk

Overview

This skill is a clearly scoped furniture-fit helper for Pascal that discloses its optional setup, credential, network, and mutation paths and repeatedly requires user authorization before changes.

Install only if you intend to use Pascal for furniture-fit checks. Use local mode when projects should remain on your machine, use a Pascal API key only for hosted projects, and treat any save, placement, hosted link, or separate agent workspace as something that needs your explicit approval.

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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (6)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
If Pascal is not connected, use [references/setup.md](references/setup.md). This skill is standalone; no other skill must be installed.

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 · references/setup.md (reported line 86)May include surrounding context.

md
Claude Code:

Plugin users set the key once in the configuration prompt shown when `pascal-agent-skills@pascal` is enabled. To add or change it later, reinstall with `claude plugin install pascal-agent-skills@pascal --config pascal_api_key=<key>`, or open `/plugin` in a session and use its configure flow; there is no `claude plugin config` command. The hosted tools then load under the plugin's `pascal-hosted` server beside the local `pascal` server, and Claude Code keeps the key in the OS keychain, falling back to `~/.claude/.credentials.json`, rather than writing it into `settings.json` or any project file.

Without the plugin, register the hosted endpoint manually:

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · references/setup.md (reported line 63)May include surrounding context.

Existing hosted project

Create an API key in Pascal Settings (https://editor.pascal.app/settings) for the same user or organization that owns the target project. Set PASCAL_API_KEY to that key without printing it. If you assign it in a shell command, avoid or remove that command from shell history. The hosted Streamable HTTP endpoint is:

text
https://editor.pascal.app/api/mcp

Vague Triggers

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

This JSON eval file contains many natural-language prompts phrased as ordinary user requests such as 'Check if it fits', 'tell me if I should order it', and 'Give one read-only next action' without any explicit trigger boundaries or exclusion conditions. In a manifest/plain-text context, this kind of broad activation wording can overlap with common conversation and does not define when the skill should or should not activate.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
67% confidence
Finding

Several eval cases instruct the agent to provide or withhold a 'Pascal' link and to send measurements to Pascal, which hard-codes a specific service path in user-facing behavior. If interpreted as organizational language policy, this constrains the user to a specific platform without presenting an opt-in alternative beyond a few scenario-specific authorizations.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The trigger evals give representative positive and negative examples, but they do not clearly define the activation boundary for ambiguous requests such as delivery-route claims, unsupported proofs, or mixed aesthetic-plus-fit queries. In a routing system, this can cause the skill to trigger too broadly or too narrowly, leading to incorrect tool use, unsupported spatial conclusions, or failure to defer when evidence is insufficient.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.