Back to skill

Security audit

Glassdoor Salary Data API - Employer Profiles, Salaries, Reviews

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward guide for using Scavio’s Glassdoor API, with disclosed API-key and credit use; the main caution is optional SDK installation from package registries.

Install only if you are comfortable sending company lookup requests to Scavio and using a SCAVIO_API_KEY that may consume credits. For stricter supply-chain hygiene, use the documented direct HTTPS requests or install the optional SDK in an isolated environment with only the required API key exposed.

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:232
Finding
Third-Party SDK Installation Without Integrity Verification## Vulnerability Details **File Location**: `SKILL.md`, lines 232-250 **Vulnerability Type**: Supply-chain exposure through unaudited third-party packages **Risk Level**: Medium ### Vulnerable Code ```bash pip install scavio==0.15.0 ``` ```python from scavio import ScavioClient client = ScavioClient() # reads SCAVIO_API_KEY hits = client.glassdoor.companies("Anthropic") employer_id = hits["data"]["results"][0]["employer_id"] company = client.glassdoor.company(employer_id=employer_id)["data"] reviews = client.glassdoor.reviews(url=company["reviews_url"], category="compensation") salaries = client.glassdoor.salaries(url=company["salaries_url"], page=1) ``` ```bash npm install scavio@0.15.0 ``` ### Technical Analysis The Skill instructs users or agents to download and install external Python and npm packages. Although both dependencies are pinned to version `0.15.0`, the project does not provide integrity hashes, lockfiles, package signatures, vendored source, or a verified source repository. The installed SDK implementations are also absent from the audited project, so their installation hooks, runtime behavior, network destinations, and credential handling cannot be independently reviewed. Version pinning limits unexpected upgrades but does not verify that registry content is authentic. If the package publisher, registry account, distribution infrastructure, or pinned release is compromised, package installation or subsequent SDK use could execute attacker-controlled code. This concern is particularly relevant because both SDK clients read `SCAVIO_API_KEY` from the environment. A compromised dependency executing in the same process could access that credential and other environment variables or files available to the invoking user. The separately documented transmission of `SCAVIO_API_KEY` to `https://api.scavio.dev` as an HTTPS bearer token is consistent with the declared API functionality and was not ...[truncated 1651 chars]
Remediation
## Remediation Suggestions 1. Prefer the already documented direct HTTPS requests to `https://api.scavio.dev`, which avoid installing an additional SDK. 2. If SDK use remains supported, provide lockfiles and cryptographic integrity data for every direct and transitive dependency. 3. Document the authoritative package registry, publisher identity, source repository, and release-verification process. 4. Audit the exact SDK source corresponding to version `0.15.0`, including installation scripts, import-time behavior, network destinations, and credential handling. 5. Disable package installation scripts where supported and unnecessary, such as with npm's `--ignore-scripts`, after confirming the package functions correctly without them. 6. Install and run dependencies in an isolated, least-privileged environment with access only to `SCAVIO_API_KEY` and the network destinations required for the task. 7. Avoid exposing unrelated environment variables or user files to the SDK process. 8. Add dependency vulnerability, provenance, and checksum verification to the release process, and regularly review pinned versions for disclosed security issues.
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:38