Back to skill

Security audit

BOSS Recruit Assistant

Security checks for vulnerabilities and agentic risk

Overview

This is a disclosed recruiting automation skill, but it needs Review because it uses anti-detection browser automation, logged-in session cookies, plaintext Feishu token storage, and automated handling of candidate resumes.

Only install this if you intentionally want automation to act through your own logged-in BOSS account and sync candidate personal data to your own Feishu table. Use a dedicated, least-privilege Feishu token, restrict local file permissions, run DRY-RUN first with a small --limit, and do not use --live unless you have confirmed each action and accept the platform, privacy, and account-risk consequences. Consider removing the anti-detection guidance and cookie-reuse attachment adapter before operational use.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
lib/target.mjs:31
Finding

Feishu bearer token exposed through command-line arguments and insufficiently protected plaintext storage

Content
View full analysis
--token ``` `scenarios/setup.mjs:32-33` ```js const token = val('--token'); const link = argv.find((a) => !a.startsWith('--') && a !== val('--table') && a !== token); ``` `lib/target.mjs:31-34` ```js export function saveTarget(obj) { fs.mkdirSync(path.dirname(TARGET_FILE), { recursive: true }); fs.writeFileSync(TARGET_FILE, JSON.stringify(obj, null, 2)); return obj; } ``` `lib/target.mjs:108-114` ```js const target = { backend: 'base-api', baseToken, talentTable: tableHint, talentTableName, personal_base_token: token, attachmentField: attachmentField || null, fields: fieldNames, configured_at: new Date().toISOString(), }; saveTarget(target); return { ok: true, target, missing, hasAttachment: !!attachmentField, backend: 'base-api' }; ``` ### Technical Analysis The setup interface requires the personal Feishu Base token to be supplied through the `--token` command-line argument. Command-line secrets can be exposed through: - Shell history files. - Process inspection while setup is running. - Terminal logging or session recording. - Automation logs that preserve the invoked command. The token is subsequently included in the target object and serialized in plaintext to `~/.opencli/boss-recruit/target.json`. The code does not explicitly create the containing directory with mode `0700` or the credential file with mode `0600`. Actual accessibility therefore depends on the user's umask, existing directory permissions, and host configuration. The token is later used as a bearer credential in `lib/feishu-base.mjs:12-17`: ```js async function bfetch(token, method, urlPath, { body, isForm } = {}) { const headers = { Authorization: `Bearer ${token}` } ...[truncated 1776 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scenarios/inbox.mjs:119
Finding

Documented candidate identity verification is not enforced before irreversible live messaging

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
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (29)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 27)May include surrounding context.

md
3. **已配置飞书目标表**(运行过 `setup.mjs`,见下)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 37)May include surrounding context.

md
3. **已配置飞书目标表**(运行过 `setup.mjs`,见下)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 38)May include surrounding context.

md
3. **已配置飞书目标表**(运行过 `setup.mjs`,见下)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 41)May include surrounding context.

md
3. **已配置飞书目标表**(运行过 `setup.mjs`,见下)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 47)May include surrounding context.

md
| ① 新招呼收件箱 | ✅ 已交付 | `scenarios/inbox.mjs` |

Natural-Language Policy Violations

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The file explicitly implements anti-detection behavior to make automation 'look human,' including randomized delays, native click/type simulation, and logic framed as bypassing platform risk controls. In the context of a recruiting automation skill for Boss直聘, this is dangerous because it is designed to evade platform defenses and enable covert high-risk automation at scale, increasing the likelihood of policy abuse, account sanctions, and unauthorized mass contact workflows.

Content

No source excerpt is available for this finding.

Ssd 4

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

This section systematically teaches evasion of platform risk controls through randomized delays, batch shaping, human-like clicking, and non-script-like interaction patterns. The danger is amplified by the skill’s recruitment context because it is not a testing or research tool; it is an operational assistant designed to perform actions on a live third-party platform while reducing detectability.

Content

No source excerpt is available for this finding.

Ssd 2

High
Category
Not specified by scanner
Confidence
94% confidence
Finding

The wording indirectly instructs operators to optimize for appearing human and avoiding detection, even without explicit jailbreak terminology. This is dangerous because paraphrased stealth guidance can still operationalize evasion while being harder to catch in review, encouraging deliberate circumvention of platform monitoring.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The markdown normalizes request masquerading and fingerprint imitation without discussing user privacy, platform integrity, or authorization boundaries. In practice, this can facilitate covert downloading and authenticated requests that inherit a logged-in user's session, creating risk of unauthorized data access, platform abuse, and difficult-to-audit actions.

Content

No source excerpt is available for this finding.

Ssd 2

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

These instructions direct the agent to disguise requests with browser fingerprint headers and cookie-authenticated behavior, which is a semantic form of fingerprint evasion and session-backed masquerading. In this skill, that creates a strong pathway to covert, hard-to-detect interactions with protected resources such as resume attachments and internal endpoints.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
89% confidence
Finding

The duplicated finding refers to the same installation and session-reuse behavior: copying an adapter into OpenCLI and relying on an already authenticated browser session. This pattern is risky in this specific skill because it combines session persistence with automation of resume access, attachment downloads, and external data synchronization, amplifying privacy and account-misuse consequences if the local environment is compromised or the skill is triggered unintentionally.

Content

Scanner excerpt · README.md (reported line 43)May include surrounding context.

md
git clone https://github.com/<your-name>/boss-recruit ~/.claude/skills/boss-recruit

# 2) 装配套的 OpenCLI 适配器(零弹窗下载附件简历)
mkdir -p ~/.opencli/clis/boss
cp ~/.claude/skills/boss-recruit/adapters/boss/attachment.js ~/.opencli/clis/boss/

# 3) 确认 OpenCLI 就绪(需先装好 Browser Bridge 扩展并登录 Boss 招聘端)

Session Persistence

Medium
Category
Rogue Agent
Confidence
89% confidence
Finding

The duplicated finding refers to the same installation and session-reuse behavior: copying an adapter into OpenCLI and relying on an already authenticated browser session. This pattern is risky in this specific skill because it combines session persistence with automation of resume access, attachment downloads, and external data synchronization, amplifying privacy and account-misuse consequences if the local environment is compromised or the skill is triggered unintentionally.

Content

Scanner excerpt · README.md (reported line 43)May include surrounding context.

md
git clone https://github.com/<your-name>/boss-recruit ~/.claude/skills/boss-recruit

# 2) 装配套的 OpenCLI 适配器(零弹窗下载附件简历)
mkdir -p ~/.opencli/clis/boss
cp ~/.claude/skills/boss-recruit/adapters/boss/attachment.js ~/.opencli/clis/boss/

# 3) 确认 OpenCLI 就绪(需先装好 Browser Bridge 扩展并登录 Boss 招聘端)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The README explicitly states the skill can be triggered by broad natural-language phrases like "处理一下 Boss 新招呼", and the metadata also advertises multiple high-level trigger intents. Because this skill performs sensitive browser automation, downloads resumes, syncs personal data to Feishu, and can send outbound messages when run live, broad trigger wording increases the chance of accidental or insufficiently scoped activation.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
94% confidence
Finding

The skill performs sensitive actions involving local file access and networked data transfer, yet it declares no explicit tool scope or permission boundaries. In this context, the skill reads candidate resumes, downloads attachments, persists state under the user home directory, and syncs data to Feishu, so the absence of declared permissions increases the chance of overbroad execution and unnoticed data exfiltration or misuse.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The activation text is broad enough to trigger on ordinary recruiting conversations, which can cause the skill to run in contexts the user did not clearly intend. That is more dangerous here because the skill can process personal resume data, download attachments, sync to external systems, and potentially send messages to candidates, so accidental invocation can create privacy, compliance, and external-action risks.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This code extracts authenticated browser cookies, including HttpOnly cookies via CDP, and reuses them in a Node-side download flow to fetch candidate resume PDFs without any user-facing confirmation. That bypasses normal browser security boundaries and enables silent collection of highly sensitive personal data (resumes/PII), which is especially risky because the skill description explicitly emphasizes '零弹窗下载' and batch processing.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The helper sends authenticated HTTP requests to an external Feishu service using a bearer token, and later functions use it to read and modify records and upload files. While there are code comments describing behavior, they are developer-facing and do not provide a user-facing warning, confirmation, or disclosure about network transmission of potentially sensitive data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The createRecord and updateRecord functions write data to Feishu tables, which can affect user-managed records remotely. This file contains no user-facing confirmation prompt, visible disclosure, or warning text indicating that remote data will be created or changed.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The uploadMedia and uploadAttachment functions upload file contents to Feishu Drive and then link them into table records, which is a privacy- and integrity-relevant operation. The file includes no user-facing notice that local buffers and filenames will be transmitted to an external service and attached to records.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The helper executes the external opencli binary through execFile, which is a safety-relevant operation because it drives browser actions and page evaluation. While there are internal comments, this file does not provide a user-facing warning, confirmation, or visible disclosure around this subprocess execution.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

evalPage sends arbitrary JavaScript into the active browser session using opencli browser ... eval, which can inspect page content and session state. This file documents the mechanism technically, but it does not include a user-facing warning that the skill will execute scripts in the user's browser context.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

saveTarget() writes arbitrary target configuration to ~/.opencli/boss-recruit/target.json without setting restrictive permissions or presenting any warning, and that configuration may include sensitive metadata and, in token mode, a live access token. Silent persistence of sensitive config increases the chance of unintended retention, local disclosure, and inclusion in backups or support bundles.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

In token mode, the code stores opts.token as personal_base_token inside target.json via saveTarget(), placing a reusable Feishu credential on disk in plaintext under the user's home directory. A local attacker, another process, backups, or accidental file disclosure could recover that token and use it beyond the narrow recruitment-sync action, especially since the code comments indicate it is an authorization code / access credential for Base APIs.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The document is framed as anti-detection and human-mimicking operational guidance rather than simple workflow automation, explicitly optimizing for avoiding platform risk controls. That is dangerous because it broadens the skill from recruitment assistance into stealth automation, increasing the likelihood of policy evasion, account sanctions, and misuse at scale.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file explicitly instructs request masquerading using full browser fingerprint headers and authenticated same-origin requests, which goes beyond normal recruiting automation and directly supports evasion of platform detection and access controls. In this skill context, these directions increase risk because they are paired with anti-risk-control guidance and zero-popup attachment retrieval, indicating deliberate concealment of automated behavior rather than legitimate compatibility handling.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.secret_argv_exposure

Instructions pass high-value credentials through process argv.

Critical
Code
suspicious.secret_argv_exposure
Location
AGENTS.md:23

Instructions pass high-value credentials through process argv.

Critical
Code
suspicious.secret_argv_exposure
Location
SKILL.md:37