mediumAgent ThreatData Exfiltration

GPTranslate WordPress Plugin AI Provider API Key Exposure

First seen Sep 21, 2026 · Updated Sep 21, 2026 · CVSS 5.3

wordpressapi-key-leakcredential-exposureclient-side-secretstranslation-pluginunauthenticatedthird-party-ai-providerASI09 · Human Trust ExploitationSurface: Supply ChainPropagation: Single Hop

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. 1

    Update the plugin

    Upgrade GPTranslate to a patched version once released; monitor the plugin changelog for a fix addressing key exposure.

  2. 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. 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. 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. 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

CVE-2026-89278

Industries Most Exposed

Web publishingE-commerceDigital marketingSaaSAny WordPress-based content platform

Sources

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.