Back to skill

Security audit

职场罗盘-用于面试者提前面试和公司背调,以及模拟面试;Your Guide for Interview Prep, Company Research, and Mock Interviews

Security checks for vulnerabilities and agentic risk

Overview

This career helper is job-search related, but it can import and store your BOSS session cookies and ships undisclosed commands that can contact recruiters.

Review this before installing. Only proceed if you are comfortable with a tool reading zhipin.com cookies from your browser, storing reusable BOSS credentials locally, and installing an unpinned package from the Python registry. Avoid running the included INSTALL.sh or boss status/login until you understand the cookie import behavior, and do not use greet or batch-greet unless you intentionally want recruiter contact from your account.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (4)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
INSTALL.sh:94
Finding

Installation Status Check Silently Extracts and Persists Browser Session Cookies

Content
View full analysis
/dev/null; then AUTH=$(boss status --json 2>/dev/null || echo "") if echo "$AUTH" | grep -q '"authenticated": true'; then ``` `boss-cli/boss_cli/commands/auth.py:129-132`: ```python def status(as_json: bool, as_yaml: bool) -> None: """View current login status""" from ..auth import get_credential, verify_credential_details cred = get_credential() ``` `boss-cli/boss_cli/auth.py:867-895`: ```python def get_credential() -> Credential | None: """Try all auth methods and return credential. 1. Saved credential file 2. Environment variable (BOSS_COOKIES) 3. Browser cookie extraction """ cred = load_credential() if cred: logger.info("Loaded credential from %s", CREDENTIAL_FILE) return cred cred = load_from_env() if cred: logger.info("Loaded credential from BOSS_COOKIES env") save_credential(cred) return cred cred, _ = extract_browser_credential() if cred: logger.info("Extracted credential from browser") return cred return None ``` Representative extraction logic from `boss-cli/boss_cli/auth.py:332-371`: ```python for name in _get_browser_order(cookie_source): fn = browser_fns.get(name) if fn is None: continue if name in _CHROMIUM_BASE_DIRS: cookie_files = _iter_chrome_cookie_files(name) if not cookie_files: try: jar = fn(domain_name=".zhipin.com") except Exception as e: logger.debug("%s in-process extraction failed: %s", name, e) attempts.append(f"{name}={type(e).__na ...[truncated 3683 chars]
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Error
Location
boss-cli/boss_cli/cli.py:58
Finding

Query-Only Security Boundary Is Contradicted by Registered Account-Write Commands

Content
View full analysis
None: """Send a greeting / submit resume to a Boss (requires securityId)""" cred = require_auth() def _action(c): return c.add_friend(security_id=security_id, lid=lid) def _render(data: dict) -> None: console.print("[green]✅ Greeting sent successfully![/green]") if data: click.echo(json.dumps(data, indent=2, ensure_ascii=False)) handle_command(cred, action=_action, render=_render, as_json=as_json, as_yaml=as_yaml) ``` The client implementation in `boss-cli/boss_cli/client.py:391-396` inv ...[truncated 2487 chars]
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
INSTALL.sh:38
Finding

Installer Executes Unpinned Remote Package and Dependency Versions

Content
View full analysis
/dev/null; then info "Using uv for installation (recommended)..." if uv tool install kabi-boss-cli 2>/dev/null; then ok "boss-cli installed successfully" else pip install kabi-boss-cli --user 2>/dev/null && ok "boss-cli installed successfully (pip)" || fail "boss-cli installation failed; run manually: pip install kabi-boss-cli --user" fi elif command -v pipx &>/dev/null; then info "Using pipx for installation..." pipx install kabi-boss-cli 2>/dev/null && ok "boss-cli installed successfully" || fail "Installation failed" else info "Using pip for installation..." pip install kabi-boss-cli --user 2>/dev/null && ok "boss-cli installed successfully" || fail "Installation failed; run manually: pip install kabi-boss-cli --user" fi ``` `boss-cli/pyproject.toml:18-24`: ```toml dependencies = [ "click>=8.0", "rich>=13.0", "httpx>=0.27", "browser-cookie3>=0.19", "qrcode>=7.0", ] ``` ### Technical Analysis The installer retrieves `kabi-boss-cli` by package name without an exact version, lockfile, package hash, or signature verification. Its dependencies also use open-ended lower bounds. Consequently, the code installed and executed at deployment time can differ from the source included in the audited artifact. This is especially sensitive because the package is given access to browser cookie databases, operating-system credential facilities, locally stored session cookies, and authenticated BOSS requests. No evidence in the reviewed source proves that the current registry package is malicious. The vulnerability is the mutable, unverified supply-chain execution path. ### Attack Path 1. An attacker compromise ...[truncated 1007 chars]
Remediation
View remediation
/dev/null`; preserve enough diagnostic information to detect unexpected package sources or resolution behavior. 8. Establish dependency update review and vulnerability-scanning procedures before changing pinned versions. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
boss-cli/boss_cli/auth.py:83
Finding

Reusable Authentication Cookies Are Persisted in Plaintext

Content
View full analysis
None: """Save credential to config file.""" CONFIG_DIR.mkdir(parents=True, exist_ok=True) CREDENTIAL_FILE.write_text(json.dumps(credential.to_dict(), indent=2, ensure_ascii=False), encoding="utf-8") CREDENTIAL_FILE.chmod(0o600) logger.info("Credential saved to %s", CREDENTIAL_FILE) ``` The serialized object contains the complete cookie values: ```python def to_dict(self) -> dict[str, Any]: return {"cookies": self.cookies, "saved_at": time.time()} ``` ### Technical Analysis The application serializes complete reusable session cookies into a JSON file. File mode `0600` is a useful hardening control against other local users, but it is not encryption and does not protect against processes running under the same account, user-readable backups, accidental copying, or compromise of the user profile. The permissions are also applied after `write_text()` creates or truncates the file. The final state is restricted, but sensitive content exists before the explicit `chmod()` operation completes. These cookies are bearer credentials: a process that obtains them may be able to replay the authenticated session without knowing the user's password. ### Attack Path 1. The CLI extracts cookies from a browser, accepts them through `BOSS_COOKIES`, or obtains them through QR login. 2. `save_credential()` writes the full cookie dictionary to: ```text ~/.config/boss-cli/credential.json ``` 3. Same-user malware, a compromised dependen ...[truncated 856 chars]
Remediation
View remediation
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (117)

Vague Triggers

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The README explicitly states that any intent related to job seeking, company judgment, interview prep, or offer evaluation can activate the skill, which is an overly broad trigger surface. This can cause unintended invocation on ambiguous user messages and increase the chance the agent accesses local resume data, web tools, or BOSS-related functionality without sufficiently explicit user consent.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger design prioritizes fuzzy semantic matching and says to trigger first and ask follow-up questions later when information is incomplete. In a skill that can process resumes, search jobs, and use third-party tooling, this increases the risk of accidental activation and unintended handling of sensitive personal or account-linked data.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
93% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
89% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

Use of saved auth cookies, profile retrieval, live API validation, and personalized recommendations would mean the skill is performing authenticated platform operations rather than just helping with resumes and interviews. That raises privacy, consent, and account misuse risks that are not properly surfaced in the top-level description.

Content

No source excerpt is available for this finding.

Vague Triggers

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The activation rules are intentionally broad and can trigger on vague job-related expressions, causing the skill to collect resumes, company names, and job descriptions without a clear opt-in moment. In a skill that may invoke shell commands or authenticated third-party workflows, overbroad auto-activation increases the chance of unintended sensitive-data handling.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · boss-cli/.gitignore (reported line 34)May include surrounding context.

text
.mypy_cache/

# Config (DO NOT commit credentials)
credential.json

Credential Access

High
Category
Privilege Escalation
Confidence
96% confidence
Finding

Referencing a fixed local path for stored session cookies indicates the tool persists reusable authentication material on disk. If that file is accessible to another user, process, backup system, or malware, an attacker could reuse the session to access the victim's BOSS account and associated job-search data without knowing the password.

Content

Scanner excerpt · boss-cli/SKILL.md (reported line 72)May include surrounding context.

text

**Cookie 存储位置:**
- macOS / Linux:`~/.config/boss-cli/credential.json`
- Windows:`%USERPROFILE%\.config\boss-cli\credential.json`

**Cookie 有效期:** 约 7 天,过期后 `boss login` 自动刷新。

Credential Access

High
Category
Privilege Escalation
Confidence
96% confidence
Finding

The Windows credential.json storage path similarly exposes that active session credentials are kept locally in a predictable file location. Predictable plaintext storage of reusable session tokens raises the risk of credential theft and account/session hijacking on compromised or shared systems.

Content

Scanner excerpt · boss-cli/SKILL.md (reported line 73)May include surrounding context.

md
**Cookie 存储位置:**
- macOS / Linux:`~/.config/boss-cli/credential.json`
- Windows:`%USERPROFILE%\.config\boss-cli\credential.json`

**Cookie 有效期:** 约 7 天,过期后 `boss login` 自动刷新。

Credential Access

High
Category
Privilege Escalation
Confidence
99% confidence
Finding

The file header documents a strategy that includes loading saved cookies from disk and extracting cookies from local browsers, confirming this module is designed for credential access. In the context of a career-assistance skill, this is unusually sensitive because it handles reusable session material that can directly authenticate to a third-party job platform.

Content

Scanner excerpt · boss-cli/boss_cli/auth.py (reported line 4)May include surrounding context.

python
"""Authentication for Boss Zhipin.

Strategy:
1. Try loading saved credential from ~/.config/boss-cli/credential.json
2. Try extracting cookies from local browsers via browser-cookie3
3. Fallback: QR code login in terminal
"""

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

Scanner excerpt · boss-cli/boss_cli/auth.py (reported line 151)May include surrounding context.

python
# ── Keychain / environment diagnostics ──────────────────────────────

_KEYCHAIN_ERROR_KEYWORDS = (
    "key for cookie decryption",
    "safe storage",
    "keychain",

Static analysis

No suspicious patterns detected.