Back to skill

Security audit

Claude Statusline

Security checks for vulnerabilities and agentic risk

Overview

This is a manually installed Claude Code status-line helper with some documentation gaps, but no hidden execution, exfiltration, or destructive behavior was found.

Before installing, confirm you are comfortable editing Claude Code settings and running a persistent local status-line shell script. Expect only branch, model, and changed-line information to work as written; the other displayed fields are placeholders unless you extend the script.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (6)

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.

Content

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

第一步:配置 settings.json

在 ~/.claude/settings.json 中添加:

json
{

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
90% confidence
Finding

Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.

Content

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

第一步:配置 settings.json

在 ~/.claude/settings.json 中添加:

json
{

Agent Config Directory Access

High
Category
Agent Snooping
Confidence
85% confidence
Finding

Skill reads from agent configuration directories (.claude/, .codex/, .gemini/). These directories may contain API keys, personal settings, and other credentials that the skill has no legitimate need to access.

Content

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

md
}

get_model() {
    model_name=$(grep -o '"model": *"[^"]*"' ~/.claude/settings.json 2>/dev/null | cut -d'"' -f4 | tr -d '\n')
    [ -z "$model_name" ] && model_name="unknown"
}

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The manifest description says the skill displays Git branch, model, context usage, output token count, cost, duration, and changed lines in real time. However, the actual script only derives Git branch, model, and changed lines, and hardcodes the other four fields as 'N/A', so the advertised behavior is not implemented.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The natural-language content of the skill, including its description and instructions, is presented only in Chinese. Under the policy, forcing a specific language without user opt-in or justification is a locale/language policy violation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The prerequisites section explicitly says jq is needed for JSON parsing, creating the impression that the implementation depends on jq. In reality, the script parses ~/.claude/settings.json using grep and cut, so the documentation contradicts the implementation rather than merely omitting detail.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.