Skip to content

[Security] Sensitive credentials exposed in plain text in Control UI tool call display #72283

Description

@forue

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

Sensitive credentials (API keys, tokens, secrets) are exposed in plain text in the Control UI tool call display. When the assistant reads or modifies configuration files via tool calls, all sensitive values like apiKey, apiSecret, and accessToken are displayed without masking or redaction.

Steps to reproduce

  1. Open Control UI webchat
  2. Ask the assistant to check plugin or model configuration
  3. Tool call output displays openclaw.json with all API keys in plain text

Expected behavior

Sensitive fields should be automatically masked/redacted before being rendered in the Control UI, consistent with the existing redaction already implemented in:

  • /config show replies (redact secrets ✅)
  • skills.update response (redact secrets ✅)

Actual behavior

API keys and tokens are visible in plain text in tool call outputs, including:

  • Provider API keys (openrouter, ollama, tavily, scnet, modelscope, etc.)
  • Channel credentials
  • Authentication tokens (gateway auth token)
  • Any other apiKey / secret fields in openclaw.json

Example:

  "apiKey": "sk-or-v1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

OpenClaw version

2026.04.24

Operating system

docker

Install method

No response

Model

minimax m2.5

Provider / routing chain

openclaw

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

Anyone with access to the Control UI can view all API keys and credentials in plain text, enabling potential unauthorized access to external services (LLM providers, messaging channels, etc.). This is especially critical in shared or multi-user environments.

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingsecuritySecurity documentation

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions