T09 · Insecure Skill Coding Practices
- Location
index.js:78- Finding
RapidAPI Credential Exfiltration Through Attacker-Controlled API Base URL
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly coherent, but its bundled Action/CLI has under-disclosed credential and URL-handling risks that users should review before installing.
Install only if you are comfortable with a paid third-party page-analysis service receiving the target URL and with the bundled Action/CLI handling a RapidAPI key. Avoid setting AUTOMATION_PREFLIGHT_API_BASE_URL outside controlled tests, do not submit private or credential-bearing URLs, and prefer pinned commits or exact release versions when installing or using the Action.
index.js:78RapidAPI Credential Exfiltration Through Attacker-Controlled API Base URL
index.js:25Public-Target Validation Accepts Private and Credential-Bearing URLs
index.js:49Untrusted Service Response Can Inject GitHub Action Outputs and Summary Content
README.md:7Documentation Recommends Executing Mutable, Unpinned Remote Packages
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
return new Promise((resolve, reject) => {
const child = spawn(process.execPath, ['index.js'], {
cwd: ROOT,
env: { ...process.env, ...env },
stdio: ['ignore', 'pipe', 'pipe'],
});
let stdout = '';
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
return new Promise((resolve, reject) => {
const child = spawn(process.execPath, ['index.js'], {
cwd: ROOT,
env: { ...process.env, ...env },
stdio: ['ignore', 'pipe', 'pipe'],
});
let stdout = '';
The README instructs users to run npx skills add tinyopsstudio/automation-integration-preflight-action without pinning an immutable version or commit. This creates a supply-chain risk because the package or referenced installer behavior could change over time, causing users to execute unexpected code when installing the skill; in the context of an agent skill install path, this is more dangerous because installation typically grants immediate code execution on the operator's machine or runner.
The command npx --yes github:tinyopsstudio/automation-integration-preflight-action executes code fetched directly from GitHub without pinning to a commit SHA or other immutable reference. That exposes users to repository compromise, tag movement, or future malicious changes, and the risk is heightened here because the README explicitly encourages direct execution from a public repository and requires an API key in the environment.
The skill instructs the agent to perform outbound network requests, including reading an OpenAPI document and calling paid external endpoints, but it does not declare any explicit tool scope or allowed-tools boundary. This creates a governance and safety gap: an agent runtime may permit broader network or environment access than the skill actually needs, increasing the chance of unintended data exposure, unauthorized external calls, or misuse of ambient credentials.
The package metadata describes the skill as a generic 'CLI and GitHub Action for bounded automation integration preflight checks,' which is broader and materially different from the manifest's narrower purpose of auditing a public webpage via the TinyOps paid x402 service with explicit exclusions. This creates a semantic mismatch about what the skill is for and how it operates.
Detected: suspicious.dangerous_exec, suspicious.env_credential_access