Back to skill

Security audit

最佳东方求职助手

Security checks for vulnerabilities and agentic risk

Overview

The skill is a plausible VeryEast job assistant, but it needs Review because it handles account credentials and resume data with under-scoped endpoint, storage, and background data-access behavior.

Install only if you trust the VeryEast integration and are comfortable giving it access to your account, full resume, and job-application actions. Avoid using it from shared or heavily logged machines, clear the stored config when finished, and be cautious of any environment that sets VEAST_MCP_URL or VEAST_API_KEY before launching the skill.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (3)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/veryeast-client.js:9
Finding

Configurable MCP Endpoint Can Exfiltrate Credentials and Resume Data

Content
View full analysis
{ const payload = { jsonrpc: '2.0', method, params: params || {} }; if (!isNotify) payload.id = id; const body = JSON.stringify(payload); const url = new URL(MCP_ENDPOINT); const options = { hostname: url.hostname, port: url.port, path: url.pathname, method: 'POST', headers: { 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(body), 'Accept': 'application/json, text/event-stream', 'User-Agent': USER_AGENT, }, timeout: 30000, }; if (apiKey) options.headers['Authorization'] = 'Bearer ' + apiKey; const mod = url.protocol === 'https:' ? https : http; ``` ### Technical Analysis The `VEAST_MCP_URL` environment variable can replace the official MCP endpoint with an arbitrary URL. No protocol or hostname allowlist is applied before the API key is inserted into the `Authorization` header. The implementation also explicitly supports both HTTP and HTTPS. Consequently, an overridden endpoint can receive: - The VeryEast bearer credential. - Complete resume responses and resume update arguments. - Personally identifiable information such as name, birth date, location, work history, education, and WeChat identifier. - Job-search criteria and application requests. - Job identifiers selected for real applications. Allowing plain HTTP additionally exposes credentials and payloads to network interception even if the destination itself is not malicious. ### Attack Path 1. An attacker influences the ...[truncated 1169 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/authorize.js:31
Finding

API Credential Is Accepted Through Process Command-Line Arguments

Content
View full analysis
' ``` ### Technical Analysis The authorization code is read directly from `process.argv`. Command-line arguments can be exposed through process inspection facilities while the process is running. Depending on the host and execution environment, the complete command can also be retained in shell history, execution logs, terminal transcripts, agent tool logs, or process-monitoring telemetry. The stored file is created with mode `0600`, which is appropriate for a new file. However, the `mode` option does not reliably correct permissions when overwriting an already existing file. If `config.json` already exists with broader permissions, rewriting it may preserve those permissions. The documented alternative of storing the API key in an environment variable also has exposure risks in process diagnostics and inherited child environments. It should not be presented as inherently safer without qualificatio ...[truncated 1189 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
references/agent-guide.md:42
Finding

Mandatory Background Resume Retrieval Violates Data Minimization

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (11)

Scope Creep

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest advertises only Bash and Read, yet the skill text promises actions like resume submission and online resume editing that inherently imply state-changing operations and likely network/API writes. This mismatch can mislead users and downstream agents about the skill’s real authority, creating a confused-deputy risk where write-capable behavior may be attempted outside the declared permission model.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The instructions state that the assistant should speak only in non-technical 'human language,' and the entire guide is written to require Chinese phrasing for all user-facing responses. This effectively forces a single language/locale experience without any user opt-in or alternative, which matches the language-policy violation criteria.

Content

No source excerpt is available for this finding.

Lp1

High
Category
MCP Least Privilege
Confidence
75% confidence
Finding

The skill uses 'env' capability that is not listed in its permissions. This may indicate deceptive intent or missing permission declarations.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger list includes very broad job-seeking phrases such as finding jobs, changing jobs, or recommending positions, which can cause the skill to activate in ordinary conversation outside the user’s intent to invoke it. Over-broad activation is dangerous because it can pull a user into a domain-specific workflow involving resumes, recommendations, and possible account-linked actions without sufficiently explicit invocation.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill instructs the agent to accept an authorization code from the user and write it locally, but the user-facing guidance does not clearly explain the persistence, scope, and risks of storing a credential on the device beyond a brief reassurance. Because the code grants access to job-search and resume functions and old codes are invalidated on reauthorization, inadequate disclosure can mislead users about credential handling and increase the chance of accidental exposure or misuse on shared or compromised devices.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The document explicitly instructs that parameters must be passed in Chinese/natural-language values, which imposes a language requirement on use of the skill. There is no indication of user opt-in, alternative locale support, or justification that the tool is limited to a Chinese-only regional compliance context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The file’s instructions are entirely in Chinese and specify a fixed output format in Chinese, with no indication that users may choose another language. This creates a language/locale policy issue because it implicitly mandates a specific language without user opt-in or documented regional justification.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The code collects host/runtime characteristics from environment variables and path-derived data, converts them into a platform label, and sends that label on every API request without clear user notice or consent. Even though the code comments say this is for analytics rather than authentication, it still transmits environment-derived telemetry unrelated to the core job-search function, creating a privacy and tracking risk.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The instruction suggests users can start with phrases like “帮我找工作”, “搜职位”, “投简历”, and “推荐些职位”, several of which are generic requests that overlap with common speech. The document does not clarify when these phrases should invoke this skill versus a more general assistant or another job-related skill.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

User-facing comments, errors, prompts, and usage guidance are consistently presented in Chinese, with no indication that the language is configurable or chosen by the user. That creates a natural-language policy concern because the skill effectively enforces a single locale without offering choice or documenting a justified locale restriction.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

The client deliberately fingerprints the host AI runtime by checking platform-specific environment variables and installation paths, then transmits that identifier in the User-Agent header. This exceeds what is necessary to perform job-search actions and creates unnecessary telemetry about the user's tooling environment, which can enable cross-platform tracking and profiling.

Content

No source excerpt is available for this finding.