Back to skill

Security audit

Arc Fulcra Sleep Detective

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a retired, privacy-conscious routing document, but its setup instructions tell users to run an unpinned external CLI during authentication, which deserves review before installation.

Review the Fulcra CLI provenance before following the setup commands. Prefer a pinned, reviewed `fulcra-api` version from a trusted registry and avoid starting the authentication flow until the executable source and version are verified. The skill text itself is privacy-bounded and does not ship code, but the unpinned CLI setup is the main risk.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:39
Finding
Unpinned Third-Party Package Is Downloaded and Executed## Vulnerability Details **File Location**: `SKILL.md:39-41` and `README.md:32-34` **Vulnerability Type**: Unpinned dependency execution **Risk Level**: Medium ### Vulnerable Code `SKILL.md:39-41`: ```bash uv tool run fulcra-api --help uv tool run fulcra-api auth login --get-auth-url uv tool run fulcra-api user-info ``` The same commands are duplicated in `README.md:32-34`: ```bash uv tool run fulcra-api --help uv tool run fulcra-api auth login --get-auth-url uv tool run fulcra-api user-info ``` ### Technical Analysis The documented setup commands instruct users to resolve and execute the `fulcra-api` package without specifying an audited version, an artifact hash, or a verified package source. The repository also provides no lockfile or vendored artifact that constrains which package release will be executed. `uv tool run` can acquire the package from the configured package index and then invoke its executable. Consequently, the code executed by these instructions can change after this skill has been reviewed. A compromised publisher account, package-index compromise, malicious configured index, or compromised future release could cause arbitrary package code to run locally. Merely invoking `--help` does not provide a security boundary: package installation, module initialization, and command entry-point loading may execute package-controlled code before help output is displayed. ### Attack Path 1. An attacker compromises the package publisher, distribution channel, configured package index, or a future release of `fulcra-api`. 2. The attacker publishes a malicious package version under the name that the unpinned command resolves. 3. A user follows the setup instructions and executes `uv tool run fulcra-api --help` or one of the subsequent authentication commands. 4. `uv` resolves and installs the attacker-controlled release because no version or artifact integrity constraint is specified. 5. The ma ...[truncated 1066 chars]
Remediation
## Remediation Suggestions 1. Pin `fulcra-api` to a specific version that has undergone security review, for example: ```bash uv tool run 'fulcra-api==X.Y.Z' --help ``` 2. Identify and enforce the trusted package registry rather than relying on ambient package-index configuration. 3. Verify the downloaded artifact with a cryptographic hash or signature before execution. Where practical, distribute a reviewed wheel and install it from a controlled source with hash verification. 4. Maintain a lockfile or equivalent immutable dependency manifest covering `fulcra-api` and its transitive dependencies. 5. Test and review the exact pinned artifact before publishing setup instructions. 6. Run initial package verification in a restricted environment with minimal filesystem, credential, and network access. 7. Do not perform authentication until package provenance and integrity have been verified. 8. Apply the same corrected instructions to both `SKILL.md` and `README.md` to prevent users from following the unsafe duplicate.
Vulnerability Patterns
  • 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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (8)

Credential Access

High
Category
Privilege Escalation
Content
https://mcp.fulcradynamics.com/mcp
```

Never print, paste, log, or share access tokens, refresh tokens, credential files, raw private records, or direct capability URLs.

## License
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Credential Access

High
Category
Privilege Escalation
Content
https://mcp.fulcradynamics.com/mcp
```

Never print, paste, log, or share access tokens, refresh tokens, credential files, raw private records, or direct capability URLs.

## License
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Rp1

Medium
Category
MCP Rug Pull
Confidence
65% confidence
Finding
uvx/uv tool run commands without ==version create a rug-pull risk.

Rp1

Medium
Category
MCP Rug Pull
Confidence
65% confidence
Finding
uvx/uv tool run commands without ==version create a rug-pull risk.

Rp1

Medium
Category
MCP Rug Pull
Confidence
65% confidence
Finding
uvx/uv tool run commands without ==version create a rug-pull risk.

Rp1

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding
The skill instructs operators to run `uv tool run fulcra-api` without pinning an exact package version. That creates a supply-chain and reproducibility risk: a later upstream release could change behavior or introduce malicious code, and users following the skill would automatically execute it. The retirement/privacy framing makes the intent benign, but the unpinned executable reference is still a real operational security issue.

Rp1

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding
This command uses `uv tool run fulcra-api` without a fixed version when performing authentication flow setup. If the package is updated or compromised upstream, users could be directed through a malicious auth process or run altered code while trying to log in. Because this is an auth-related invocation, the surrounding context makes the supply-chain risk somewhat more sensitive than a generic help command.

Rp1

Medium
Category
MCP Rug Pull
Confidence
84% confidence
Finding
The `user-info` example also invokes an unpinned external tool, exposing users to execution of whatever version is current at resolution time. In a skill handling sensitive personal data, even a benign-looking metadata read can become a vector for compromised code or unexpected data access if the dependency supply chain is not controlled.

Static analysis

No suspicious patterns detected.