Back to skill

Security audit

Job-Hunter

Security checks for vulnerabilities and agentic risk

Overview

The skill is job-search and CV-generation focused, but it asks users to run unpinned external code while handling resume data, API keys, scheduled automation, and Telegram delivery.

Install only if you are comfortable running the external CareerForge CLI after independently reviewing and pinning the repository version. Keep resume files in a private workspace, avoid putting API keys in chat or committed .env files, verify any cron job before enabling it, and use Telegram delivery only for recipients/groups you trust.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:20
Finding

Unpinned Third-Party Code Retrieval and Installation

Content
View full analysis
Remediation
View remediation
``` 2. Verify the checked-out commit or release using a trusted signature or a separately distributed cryptographic checksum before installation. 3. Include a reviewed dependency lockfile and use deterministic installation: ```bash npm ci ``` 4. Audit all direct and transitive dependencies, as well as `preinstall`, `install`, and `postinstall` scripts, before allowing lifecycle execution. 5. Where compatible with the dependency set, initially install without lifecycle scripts: ```bash npm ci --ignore-scripts ``` Run only individually reviewed setup steps afterward. 6. Avoid implicit package retrieval through `npx`. Install a pinned, reviewed Playwright version from the lockfile and invoke its local binary with remote package installation disabled. 7. Prefer vendoring the reviewed CLI source into the skill or publishing a signed, immutable release artifact whose digest is validated during setup. 8. Run dependency installation and CV generation in a restricted container or sandbox with: - No unnecessary host filesystem access. - No access to unrelated credentials. - Restricted outbound network access. - A non-privileged operating-system account. - Resume and API-key access granted only when required. 9. Add automated dependency scanning, lockfile integrity checks, and periodic review of the pinned upstream revision before updating it. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (11)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/cli_usage.md (reported line 87)May include surrounding context.

md
### "No Gemini API key found"
- Set GEMINI_API_KEY environment variable
- Or create .env file with the key

### PDF conversion fails
- Ensure Playwright is installed: `npm install`

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description is broad enough to trigger on many ordinary resume or job-search conversations, increasing the chance the agent invokes this skill unexpectedly. Because the skill then guides users into cloning and running external tooling and collecting sensitive career data, overbroad activation materially raises the risk of unintended data handling and unsafe workflow execution.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

These instructions collect and store highly sensitive personal information, including contact details, employment history, education, and portfolio links, but provide no privacy notice, retention limits, or safe-storage guidance. In context, this is dangerous because the skill explicitly saves the data to local files, creating unnecessary exposure of identity and career information if the workspace is shared, synced, or later exfiltrated.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

Requesting an API key without explaining how it will be handled, stored, or protected creates credential exposure risk. Given that the skill also instructs users to clone and run external code from GitHub, the absence of credential-handling guidance makes accidental logging, plaintext storage, or theft by local scripts substantially more dangerous.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill sends job listings and generated CVs through Telegram, a third-party messaging platform, without warning users that their personal and application data will be shared externally. Tailored CVs may contain full identity, employment history, and contact details, so transmitting them over a chat channel can expose sensitive information to unintended recipients, compromised groups, or platform-level access.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

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.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill documents sending job listings and generated CVs through a Telegram group, but provides no warning about data exposure, retention, or who can access the group. In a job-search context, this can disclose sensitive employment intent, resume contents, and job application metadata to unintended recipients or third-party platforms.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The file describes storing a master resume, generating tailored CVs, and tracking applications without warning that personal data will be processed, persisted, and potentially reused. Resume data commonly contains highly sensitive personal and professional information, so silent storage and processing increases privacy, compliance, and unauthorized access risks.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The schedule configuration sets defaults of '8-18 Israel time,' 'Sunday-Thursday,' and 'Asia/Jerusalem,' which embeds a locale-specific assumption in the skill instructions. The document does not justify this as region-specific or clearly present it as an optional example rather than a default behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The guide instructs users to place a Gemini API key in an environment variable or .env file but provides no warning about keeping credentials out of source control, logs, or shared systems. In a job-search automation skill that processes personal resume data, weak credential-handling guidance increases the chance of accidental key exposure and unauthorized API use.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

The file sets default location filters to Tel Aviv/Israel and uses the Asia/Jerusalem timezone, imposing a locale-specific default. Although customization is mentioned later, the document does not explain that these regional defaults are optional or justified for a region-specific skill.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.