Back to skill

Security audit

Bitwarden Credential

Security checks for vulnerabilities and agentic risk

Overview

This Bitwarden skill is purpose-aligned but asks an agent to handle live vault session tokens and plaintext secrets in unsafe command-line paths.

Review before installing. Only use a Bitwarden helper that keeps BW_SESSION and plaintext secrets out of chat, command history, process arguments, and agent transcripts. Prefer running Bitwarden CLI locally with the session already in the environment, hidden prompts or stdin for secrets, and sanitized output that never prints created-item JSON.

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 (3)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/bitwarden-credential.sh:22
Finding

Credentials Exposed Through Command-Line Arguments

Content
View full analysis
[notes]" exit 1 fi ``` The insecure invocation pattern is also explicitly documented in `SKILL.md`, lines 32-40 and 49: ```bash BW_SESSION="" ./bitwarden-credential.sh [notes] ``` ```bash ./scripts/bitwarden-credential.sh "" "" "" "[notes]" ``` ### Technical Analysis The script accepts passwords, API keys, OAuth tokens, and other secrets as positional command-line arguments. Command-line arguments are not an appropriate transport for sensitive values because they can be exposed through: - Process inspection interfaces such as `ps` or `/proc`. - Shell command history. - Agent command transcripts and execution telemetry. - Endpoint monitoring and operating-system audit logs. - CI/CD logs or debugging output that records executed commands. Quoting the arguments prevents shell word splitting but does not prevent their disclosure through process metadata or command logging. ### Attack Path 1. A user or AI agent follows the documented invocation pattern and includes a credential as the third argument. 2. The shell starts the script with the secret present in its argument vector. 3. A process monitor, local process running under an authorized account, shell-history collector, audit subsystem, or agent telemetry system records the command arguments. 4. An attacker obtains access to the process data, history, transcript, or logs. 5. The attacker extracts and reuses the password, API key, or OAuth token. ### Impact Assessment Successful exploitation discloses the cr ...[truncated 421 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/bitwarden-credential.sh:59
Finding

Bitwarden Vault Session Token Exposed in Process Arguments

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/bitwarden-credential.sh:58
Finding

Created Vault Item May Be Disclosed Through Standard Output

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

Passing BW_SESSION and secrets directly on the command line can expose them through shell history, process listings, terminal scrollback, or local audit/logging tools. Because this skill handles highly sensitive material, documenting this pattern without warnings or safer alternatives materially increases the risk of credential leakage on the user's machine.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The example shows secret material embedded in a literal shell command, which may be captured in shell history, clipboard history, terminal logging, or monitoring tooling. Even though the destination is a password manager, the handling path is unsafe because the plaintext secret is exposed before it reaches Bitwarden.

Content

No source excerpt is available for this finding.

Ssd 3

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

This skill explicitly instructs the user to return a valid Bitwarden session token to the agent so the agent can operate with the user's vault permissions. In the context of an agent skill, this is especially dangerous because it normalizes credential delegation to the agent and can give the agent or any intermediary full access to stored secrets.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script tells the user to provide the Bitwarden session key back to the agent, effectively transferring a live vault access token. A BW_SESSION value is itself a sensitive credential; exposing it to an agent allows actions against the user's vault for the lifetime of that session and can enable unauthorized secret access or modification.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The trigger phrases are broad enough to match generic requests involving passwords, API keys, or credentials, which can cause the skill to activate outside a clearly intended Bitwarden-storage workflow. In this context, that increases the chance that sensitive secrets are solicited or handled when the user did not explicitly intend to use Bitwarden, creating avoidable exposure and confusion.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
85% confidence
Finding

The script packages the provided username and password into JSON and sends them to bw create item, which is the core purpose of the skill but still involves handling and transmitting secrets. While there is a minimal status message (Storing: $NAME), there is no explicit disclosure in comments or user-facing output that sensitive credentials are being processed and stored via the CLI.

Content

No source excerpt is available for this finding.