T08 · Insecure Dependencies
- Location
SKILL.md:13- Finding
Unpinned Installation of a Mutable Upstream Executable
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill appears to perform Caesar research as advertised, but its setup asks users to install a mutable external CLI and gives weak plaintext API-key storage guidance.
Review before installing. Prefer installing a pinned Caesar CLI version you trust, avoid putting real API keys in shell history or plaintext `.env` files, use a secret manager or restrictive file permissions, and do not send confidential or regulated data in research prompts unless Caesar's data handling is acceptable for your use.
SKILL.md:13Unpinned Installation of a Mutable Upstream Executable
README.md:29Plaintext API-Key Persistence with Missing Claimed Ignore Protection
The example command writes the API key directly into a .env file in plaintext, creating a concrete credential exposure pattern rather than just mentioning configuration options abstractly. Even if the file is git-ignored, secrets may still be exposed to local users, endpoint compromise, backups, editor plugins, or accidental copying into logs and support artifacts.
To persist it across shell sessions, add the export line to your shell profile (~/.zshrc, ~/.bashrc, etc.), or create a local .env file:
echo 'export CAESAR_API_KEY=your_key_here' > .env
source .env
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
echo 'export CAESAR_API_KEY=your_key_here' > .env
source .env
The .env file is git-ignored and will not be committed.
The code clearly supports the 'deep research' portion of the description by creating and monitoring research jobs through the Caesar API. However, the declared description also claims broader capabilities: follow-up chat, brainstorming, and managing collections. In this code chunk, there are no chat commands, no collection CRUD or management operations, and no actual brainstorming workflow beyond optionally attaching an existing brainstorm session ID to a research request. That makes the description materially broader than what this specific code chunk actually does.
The declared description emphasizes user-facing Caesar API research features such as queries, chat follow-ups, brainstorming, and collection management. The supplied code chunk does not implement any of those behaviors; it only tests configuration logic for reading an API key from an environment variable and returning errors when missing. While API key retrieval may support the broader skill, this chunk’s actual purpose is materially different from the declared functionality, so it is a mismatch.
The declared purpose describes a research-oriented skill with Caesar API features, but the supplied code chunk contains only basic output utilities. It does not perform research operations, network/API calls, query handling, chat, brainstorming, or collection management. While output formatting is a plausible support component, this chunk alone does not substantiate the declared behavior and includes an undeclared capability to terminate the process on error.
The declared description says the skill performs deep research using the Caesar API and supports research-oriented interactions. The supplied code chunk does not implement any such behavior. It is strictly a Go test file validating console output helpers: JSON serialization, stderr error formatting, exit handling, and default stream assignments. This is a materially different primary purpose, so the description does not accurately represent the code.
The README recommends storing the Caesar API key in a local .env file as plain text and sourcing it into the shell, but it does not warn users about local plaintext secret exposure, file permission risks, shell history leakage, or accidental disclosure through backups and tooling. While common in developer workflows, this still weakens secret handling guidance and can lead to credential compromise on shared or insufficiently secured systems.
The skill declares access to environment-provided secrets via CAESAR_API_KEY but does not declare an explicit tool scope such as permissions or allowed-tools. This creates ambiguity about what the skill is permitted to access and increases the chance that a host agent exposes secrets or execution capabilities more broadly than intended.
The documentation encourages sending arbitrary research queries, chat follow-ups, and brainstorm context to an external Caesar service without warning users that their prompts and attached context leave the local environment. In a research skill, users may include sensitive business data, internal documents, or personal information, so the omission can lead to unintended data disclosure.
No suspicious patterns detected.