GPTranslate WordPress Plugin AI Provider API Key Exposure
First seen Sep 21, 2026 · Updated Sep 21, 2026 · CVSS 5.3
A WordPress plugin that wraps several AI translation providers (OpenAI, DeepL, xAI, Gemini, Claude, Google Cloud Translation) embeds a reversible, obfuscated form of the site owner's API key directly in publicly served JavaScript. Any unauthenticated visitor can fetch a public page, apply the plugin's own decoding logic, and recover the plaintext API key, giving them billed access to the site owner's AI provider account. This is a straightforward credential-exposure vulnerability rather than an agentic reasoning or protocol-level attack.
Technical Analysis
The vulnerability lies in the plugin's enqueue_frontend_scripts function, which enqueues client-side JavaScript containing an obfuscated (not properly encrypted) representation of the configured AI provider API key so that translation calls can be made from the browser. Because the transformation is symmetric and its inverse ships in the same public JS bundle, any attacker with network access to a public page can extract the algorithm and recover the plaintext key with no authentication required. This affects the default configuration (gpt-3.5-turbo client mode) and all non-DeepSeek providers; only DeepSeek models or GPT models explicitly configured in server-proxy mode avoid emitting the key client-side. The impact is confined to the compromised API key/account (billing fraud, quota exhaustion, potential data exposure via the provider account) and does not itself involve cross-agent orchestration, tool poisoning, or prompt injection, though a stolen key could be reused to abuse the underlying AI service.
Affected Systems
GPTranslate WordPress Plugin
Detection Signatures
- Presence of enqueue_frontend_scripts output containing encoded strings resembling API key patterns (sk-, AIza, DeepL tokens, etc.) in publicly loaded JS assets
- Outbound API calls to OpenAI/DeepL/xAI/Gemini/Claude/Google Translate originating directly from browser-side JavaScript rather than server-side proxy
- Unexpected billing spikes or unfamiliar IP addresses in AI provider usage dashboards for the associated account
- WordPress sites running GPTranslate <= 2.34.6 in client mode with non-DeepSeek providers
Remediation Steps
- 1
Update the plugin
Upgrade GPTranslate to a patched version once released; monitor the plugin changelog for a fix addressing key exposure.
- 2
Switch to server-proxy mode
Configure the plugin (where supported) to route AI provider calls through a server-side proxy so API keys are never sent to the client.
- 3
Rotate exposed API keys
Immediately regenerate/rotate API keys for all configured AI providers (OpenAI, DeepL, xAI, Gemini, Claude, Google Cloud Translation) on any site running vulnerable versions.
- 4
Restrict key scope and monitor usage
Apply spending limits, IP allowlists, or scoped permissions on AI provider API keys, and monitor usage logs for anomalous activity.
- 5
Audit third-party plugins for client-side secret handling
Review other WordPress plugins integrating AI services for similar patterns of embedding credentials in front-end assets.
CVE / Advisory IDs
Industries Most Exposed
Respond to this threat
Pro subscribers get a full AI-generated incident-response playbook for this threat — detection, containment, eradication, and recovery steps — plus an unlimited AI Threat Advisor for questions about your environment.