Back to skill

Security audit

Indeed Jobs API - Job Search and Full Posting Detail

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent Indeed job-search API guide that discloses its API key use and credit costs, with only ordinary third-party SDK supply-chain caution.

Install only if you are comfortable using Scavio for Indeed data and exposing a Scavio API key to this workflow. Prefer the documented direct HTTPS examples or install SDKs in an isolated environment, and cap loops because empty results, 404s, and pagination still consume credits.

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:225
Finding
Unverified Third-Party SDK Installation Introduces Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md`, lines 225-249 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```bash pip install scavio==0.15.0 ``` ```python from scavio import ScavioClient client = ScavioClient() # reads SCAVIO_API_KEY found = client.indeed.search(query="data engineer", location="Austin, TX", radius=25) job = client.indeed.job(found["data"]["jobs"][0]["job_key"]) company = client.indeed.company(job["data"]["company_slug"]) reviews = client.indeed.company_reviews(job["data"]["company_slug"], page=1) ``` ```bash npm install scavio@0.15.0 ``` ```javascript import { Scavio } from "scavio"; const client = new Scavio(); // reads SCAVIO_API_KEY const found = await client.indeed.search({ query: "data engineer", location: "Austin, TX", radius: 25 }); const reviews = await client.indeed.companyReviews({ company: "example-corp", page: 1 }); ``` ### Technical Analysis The Skill recommends installing executable third-party Python and npm packages directly from public package registries. Both packages are version-pinned, which limits unexpected version drift, but the instructions do not provide cryptographic hashes, lockfiles, signatures, verified publisher information, or other integrity controls. Package installation can execute package-controlled build or lifecycle logic. Imported SDK code subsequently runs in the agent process and explicitly reads `SCAVIO_API_KEY`. Consequently, a compromised publisher account, malicious replacement of the referenced release, registry compromise, or transitive dependency compromise could expose the API key and any other data available to the installation or runtime process. No evidence was found that the referenced `scavio` packages are currently malicious. The finding concerns the unverified supply-chain trust introduced by the documented installation procedure. The dependency is also not strictl ...[truncated 1845 chars]
Remediation
## Remediation Suggestions 1. Prefer the already documented direct HTTPS workflow, which avoids introducing executable SDK dependencies. 2. If the SDKs remain supported, publish and verify cryptographic integrity information for the exact package artifacts. 3. Provide reproducible lockfiles that pin all transitive dependencies, not only the top-level SDK version. 4. Document the packages' verified registry publisher identities and link to their reviewed source repositories and release provenance. 5. Use package-manager integrity controls and signature or provenance verification where available. 6. Install dependencies in an isolated virtual environment or container under a non-privileged account. 7. Expose only `SCAVIO_API_KEY` to the runtime and avoid making unrelated credentials or sensitive environment variables available. 8. Disable unnecessary installation scripts where compatible, and audit package lifecycle hooks before use. 9. Apply outbound network restrictions so the SDK can communicate only with the documented Scavio API endpoint. 10. Rotate `SCAVIO_API_KEY` and review account usage if package or environment compromise is suspected.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
SKILL.md:37