T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:18- Finding
Unverified Remote Bitwarden CLI Download and Execution
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This Bitwarden skill is purpose-aligned, but its built-in installer downloads and installs a vault-accessing CLI binary without integrity verification, so users should review it before installing.
Install this only if you are comfortable granting an agent access to your Bitwarden vault through BW_SESSION. Prefer installing the Bitwarden CLI through Bitwarden's documented package-manager path or another verified method instead of the built-in script, and only ask the skill to reveal passwords or TOTP codes when you explicitly need them.
SKILL.md:18Unverified Remote Bitwarden CLI Download and Execution
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).
{
"id": "bw-binary",
"kind": "script",
"script": "PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]'); [ \"$PLATFORM\" = 'darwin' ] && PLATFORM='macos'; curl -sL \"https://vault.bitwarden.com/download/?app=cli&platform=${PLATFORM}\" -o /tmp/bw.zip && unzip -o /tmp/bw.zip -d ~/.local/bin/ && chmod +x ~/.local/bin/bw && rm /tmp/bw.zip",
"bins": ["bw"],
"requires": ["curl", "unzip"],
"label": "Install Bitwarden CLI to ~/.local/bin",
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.
## What it does
- Look up usernames, passwords, and TOTP codes
- Create new vault items (logins, secure notes, cards, identities)
- Edit existing items
- Generate strong passwords and passphrases
- Sync vault changes
The invocation guidance says to use the skill when asked to "store, retrieve, find, or manage passwords, secrets, or credentials," which is a broad natural-language trigger without clear scope boundaries or exclusion conditions. Terms like "find" and "manage" are generic enough to match many ordinary requests, increasing the risk of unintended activation.
The install script downloads and executes a security-sensitive binary path from the network using curl, then places the resulting executable in ~/.local/bin without any integrity or authenticity verification. In a credential-management skill, this is especially risky because a tampered CLI could steal vault data, session tokens, or user secrets once invoked.
{
"id": "bw-binary",
"kind": "script",
"script": "PLATFORM=$(uname -s | tr '[:upper:]' '[:lower:]'); [ \"$PLATFORM\" = 'darwin' ] && PLATFORM='macos'; curl -sL \"https://vault.bitwarden.com/download/?app=cli&platform=${PLATFORM}\" -o /tmp/bw.zip && unzip -o /tmp/bw.zip -d ~/.local/bin/ && chmod +x ~/.local/bin/bw && rm /tmp/bw.zip",
"bins": ["bw"],
"requires": ["curl", "unzip"],
"label": "Install Bitwarden CLI to ~/.local/bin",