T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:15- Finding
Unpinned npm Package Retrieval and Execution
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill appears purpose-aligned, but it asks users to run an unpinned external npm CLI that handles API keys, CV data, and paid account actions.
Install only if you trust the ApplyTop npm package and publisher. Prefer a pinned reviewed version, avoid putting real API keys on the command line, do not use --insecure or custom API URLs unless you control the endpoint, and clear or rotate saved credentials on shared machines.
SKILL.md:15Unpinned npm Package Retrieval and Execution
SKILL.md:29API Key Exposure and Unsafe Transport Options
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
Every command except auth:* needs an API key, and the API is an ApplyTop Pro feature. Free accounts cannot create keys, and calls from a non-Pro account return 403 pro_required.
at_live_…).--api-key flag > APPLYTOP_API_KEY env > saved file (~/.applytop/credentials.json):applytop auth:login # prompts for the key, validates it, saves it
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
Every command except auth:* needs an API key, and the API is an ApplyTop Pro feature. Free accounts cannot create keys, and calls from a non-Pro account return 403 pro_required.
at_live_…).--api-key flag > APPLYTOP_API_KEY env > saved file (~/.applytop/credentials.json):applytop auth:login # prompts for the key, validates it, saves it
The documentation recommends running the package via npx applytop without a pinned version. This causes code to be fetched and executed at runtime from the registry, which creates a supply-chain risk if the package is compromised, typosquatted, or a malicious new version is published. In the context of a skill that handles API keys and user CV/job data, executing an unpinned package is more dangerous because the fetched code could access those credentials and sensitive data.
This duplicate finding points to the same behavior: persistent storage of an API key for future sessions. Session persistence is not inherently malicious, but when implemented as a saved local credential file it becomes a security issue if the token is long-lived and readable by unintended parties. Because the tool operates on private account data and billable actions, unauthorized reuse of the persisted key has meaningful impact.
## ⚠️ Authentication Required
Every command except `auth:*` needs an API key, and **the API is an ApplyTop Pro feature**. Free accounts cannot create keys, and calls from a non-Pro account return `403 pro_required`.
1. Create a key at **https://applytop.com/dashboard/api-keys** (keys look like `at_live_…`).
2. Provide it in one of three ways — **precedence: `--api-key` flag > `APPLYTOP_API_KEY` env > saved file** (`~/.applytop/credentials.json`):
This duplicate finding points to the same behavior: persistent storage of an API key for future sessions. Session persistence is not inherently malicious, but when implemented as a saved local credential file it becomes a security issue if the token is long-lived and readable by unintended parties. Because the tool operates on private account data and billable actions, unauthorized reuse of the persisted key has meaningful impact.
## ⚠️ Authentication Required
Every command except `auth:*` needs an API key, and **the API is an ApplyTop Pro feature**. Free accounts cannot create keys, and calls from a non-Pro account return `403 pro_required`.
1. Create a key at **https://applytop.com/dashboard/api-keys** (keys look like `at_live_...`).
2. Provide it in one of three ways — **precedence: `--api-key` flag > `APPLYTOP_API_KEY` env > saved file** (`~/.applytop/credentials.json`):
No suspicious patterns detected.