T08 · Insecure Dependencies
- Location
README.md:33- Finding
Unpinned Third-Party Installer and Mutable Repository Source
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill itself is mostly API-design documentation, but its README recommends an unpinned executable install command from a mutable GitHub branch, which users should review before installing.
Review the install path before using this skill. Prefer installing from a pinned commit, verified archive, or trusted local copy instead of running the README's unpinned `npx add` command. If you copy the FastAPI template into a real service, replace wildcard CORS with explicit allowed origins and review destructive CRUD endpoints before deployment.
README.md:33Unpinned Third-Party Installer and Mutable Repository Source
templates/fastapi-template.py:20Unrestricted CORS Configuration in a Production-Labeled API Template
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
GET /api/resources/{id} → Get one
PUT /api/resources/{id} → Replace
PATCH /api/resources/{id} → Partial update
DELETE /api/resources/{id} → Remove
# Nested (max 1 level)
GET /api/users/{id}/orders → User's orders
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
|-------|-------|
| `POST /getUsers` | `GET /users` |
| `GET /createUser` | `POST /users` |
| `POST /users/delete/123` | `DELETE /users/123` |
| `/user/123` | `/users/123` (plural) |
| `/api/users/123/orders/456/items` | Max 2 levels |
| 200 for everything | Correct status codes |
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
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.
From your project root:
mkdir -p .cursor/skills
cp -r ~/.ai-skills/skills/backend/api-design-principles .cursor/skills/api-design-principles
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
From your project root:
mkdir -p .claude/skills
cp -r ~/.ai-skills/skills/backend/api-design-principles .claude/skills/api-design-principles
Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.
mkdir -p ~/.claude/skills
cp -r ~/.ai-skills/skills/backend/api-design-principles ~/.claude/skills/api-design-principles
Skill selects an external model or provider that may use a different account or billing plan than the operator expects. Undisclosed model switches can cause unexpected cost or quota consumption.
---
name: api-design-principles
model: reasoning
---
# API Design Principles
This code defines a DELETE endpoint for user removal, which is a destructive and potentially irreversible action. Although the docstring states the HTTP response behavior, it does not provide any user warning, confirmation step, or explicit disclosure about the impact of deletion.
No suspicious patterns detected.