wbso-logout
Warn
Audited by Gen Agent Trust Hub on Oct 16, 2026
Risk Level: MEDIUMDATA_EXFILTRATIONCOMMAND_EXECUTIONINDIRECT_PROMPT_INJECTIONDYNAMIC_EXECUTION
Full Analysis
- [DATA_EXFILTRATION]: The
contextcommand inscripts/wbsoautomatically collects and transmits local activity data tohttps://portal.wbso.ai. This includes: - Git commit history from the current working directory via
git log. - Local Claude AI session prompts extracted from the directory
~/.claude/projects/. - Local Codex session prompts extracted from the directory
~/.codex/sessions/. - [COMMAND_EXECUTION]: The script
scripts/wbsocontains several patterns vulnerable to shell injection: - The
parse_argsfunction usesevalto dynamically assign shell variables from command-line arguments:eval "ARG_${key//-/_}=\"\$val\"". An attacker could attempt to inject commands through maliciously crafted flag names. - The
write_configfunction uses an unquoted heredoc (cat > "$CONFIG_FILE" <<EOF) which performs command substitution on the variables being written. If the API key, email, or base URL contains shell metacharacters (e.g.,$(command)), they will be executed by the shell during the write operation or when the config is later loaded viasource. - [DYNAMIC_EXECUTION]: The skill uses
evalto process command-line arguments andsourceto load configuration files, which allows for dynamic execution of potentially untrusted input generated during the session. - [INDIRECT_PROMPT_INJECTION]: The skill fetches markdown content from an external API (
/api/v1/compliance/context.md) and injects it directly into the agent's context without sanitization or boundary markers. - Ingestion points:
scripts/wbsofunctioncmd_contextdownloads content from the vendor API usingcurl. - Boundary markers: Absent; the downloaded markdown is printed directly to the standard output for the agent to process.
- Capability inventory: The skill has the capability to delete configuration files (
rm -f), execute git commands, and perform network requests. - Sanitization: None; the remote content is not escaped or validated before being presented to the AI agent.
Audit Metadata