Back to skill

Security audit

hal-vault

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed local secret-management guide that handles sensitive credentials but keeps that behavior purpose-aligned and user-controlled.

Install only if you want this agent to manage local encrypted secrets. Review the hal-vault binary source/provenance before installing it, keep vault files out of version control, protect the SSH key, and expect secrets to be revealed only when feeding a command you asked to run.

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
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (11)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
60% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · CHANGELOG.md (reported line 25)May include surrounding context.

after (1.2.0)

hal-vault get github-pat --reveal
| sed 's/^/Authorization: Bearer /'
| curl -H @- https://api.github.com/user

text

The safety contract's rule 2 said to use `--reveal` "inside command

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
60% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

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

B — the value is piped in; the arguments carry nothing

hal-vault get github-pat --reveal
| sed 's/^/Authorization: Bearer /'
| curl -H @- https://api.github.com/user

text

`ps -A -o args=` while both were in flight:

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
60% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

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

B — the value is piped in; the arguments carry nothing

hal-vault get github-pat --reveal
| sed 's/^/Authorization: Bearer /'
| curl -H @- https://api.github.com/user

text

`ps -A -o args=` while both were in flight:

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
[references/cli-reference.md](references/cli-reference.md).

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · CHANGELOG.md (reported line 20)May include surrounding context.

text
# before (1.1.0), still works, now discouraged
curl -H "Authorization: Bearer $(hal-vault get github-pat --reveal)" https://api.github.com/user

# after (1.2.0)
hal-vault get github-pat --reveal \

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · CHANGELOG.md (reported line 25)May include surrounding context.

text
# before (1.1.0), still works, now discouraged
curl -H "Authorization: Bearer $(hal-vault get github-pat --reveal)" https://api.github.com/user

# after (1.2.0)
hal-vault get github-pat --reveal \

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

text
# before (1.1.0), still works, now discouraged
curl -H "Authorization: Bearer $(hal-vault get github-pat --reveal)" https://api.github.com/user

# after (1.2.0)
hal-vault get github-pat --reveal \

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

text
# before (1.1.0), still works, now discouraged
curl -H "Authorization: Bearer $(hal-vault get github-pat --reveal)" https://api.github.com/user

# after (1.2.0)
hal-vault get github-pat --reveal \

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

text
# before (1.1.0), still works, now discouraged
curl -H "Authorization: Bearer $(hal-vault get github-pat --reveal)" https://api.github.com/user

# after (1.2.0)
hal-vault get github-pat --reveal \

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

text
# before (1.1.0), still works, now discouraged
curl -H "Authorization: Bearer $(hal-vault get github-pat --reveal)" https://api.github.com/user

# after (1.2.0)
hal-vault get github-pat --reveal \

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

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

md
---
name: hal-vault
description: Securely store, search, and use secrets (API keys, tokens, passwords, SSH keys) with hal-vault, an SSH-key encrypted local secret store. Use when the user shares a credential that should be saved, asks what secrets are stored or where a key is, or when a command/workflow needs a secret injected. Core discipline - never print raw secret values into chat, logs, or files; reference secrets only by their masked form, and use --reveal only to feed another process, never into a command argument (where it lands in the machine's process table) or into text you write down.
license: MIT
version: "1.2.0"
homepage: https://github.com/ofoxai/skills/tree/main/skills/hal-vault

Static analysis

Detected: suspicious.exposed_secret_literal

File appears to expose a hardcoded API secret or token.

Critical
Code
suspicious.exposed_secret_literal
Location
SKILL.md:130