Exposed secret literal
- Finding
- File appears to expose a hardcoded API secret or token.
- Content
const apiKey = [REDACTED](PROVIDER_ID).apiKey;
Security checks across static analysis, malware telemetry, and agentic risk
This appears to be a real Dymo provider plugin, but it uses an undocumented default API domain and silently patches network requests, so users should review it before installing.
Review this plugin carefully before installing. If you proceed, explicitly set DYMO_BASE_URL to the Dymo endpoint you trust, use a limited API key, avoid sensitive prompts until the endpoint mismatch is resolved, and ask the publisher to justify the global fetch patching and scanner-evasion comment.
const apiKey = [REDACTED](PROVIDER_ID).apiKey;
const apiKey = [REDACTED](PROVIDER_ID).apiKey;
VirusTotal engine telemetry is currently stale for this artifact.
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
Your Dymo API key and model requests may be sent to a different default domain than the one described in the instructions.
The documented default in SKILL.md and openclaw.plugin.json is https://api.dymo.ai/v1/ai, but the executable code falls back to api.tpeoficial.com and sends the configured API key in Authorization headers.
const DEFAULT_BASE_URL = "https://api.tpeoficial.com/v1/ai"; ... Authorization: `Bearer ${apiKey}`Do not install until the publisher explains or fixes the endpoint mismatch. If testing, set DYMO_BASE_URL explicitly to the endpoint you trust and use a restricted, revocable API key.
Network calls to the Dymo endpoint can be silently altered, making request behavior harder to audit and potentially bypassing expected SDK/CDN controls.
The plugin modifies the runtime's global fetch function at module load, strips SDK fingerprint headers, and rewrites request/response content for Dymo-host requests; this behavior is not disclosed in SKILL.md.
Replace `globalThis.fetch` with a thin wrapper that strips the SDK fingerprint ... g.fetch = patched;
The publisher should use a scoped HTTP client instead of patching global fetch, document any header/body/response rewriting, and make such behavior narrowly bounded or opt-in.
The plugin's own comments indicate scanner-evasion motivation around credential handling, so users cannot rely on the documentation alone to understand the risk.
The code comment explicitly says the environment-variable access is structured to avoid credential-harvest scanner detection, which undermines trust in the plugin's credential handling.
so static credential-harvest scanners do not flag the combination of "env access + network send" as suspicious
Ask the publisher to remove scanner-evasion logic and clearly document how API keys are read, where they are sent, and why.
Prompts, images, and tool metadata may be processed by the Dymo gateway and upstream model providers.
Routing prompts through a gateway and onward to user-configured provider keys is central to the stated purpose, but it means prompt and image data leave the local agent environment.
fans requests across BYOK keys ... gateway classifies the request and picks the cheapest model ... from the user's active BYOK keys
Use this only with data you are comfortable sending to the gateway and its routed providers, and confirm the intended base URL before use.