GPTranslate <= 2.31 - Unauthenticated Stored Cross-Site Scripting via REST API Translation Storage
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- No fix listed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-79.
Summary
The GPTranslate – Multilingual AI Translation for WordPress: Automatically Translate Websites plugin for WordPress is vulnerable to Stored Cross-Site Scripting via REST API Translation Storage in all versions up to, and including, 2.31 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The deterministically derived API key (sha256 of the site URL) is printed in the HTML source of every page via the JavaScript variable gptApiKey, meaning any unauthenticated visitor can retrieve the key and submit malicious translation payloads to the /wp-json/gptranslate/v1/request endpoint without any additional precondition.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| john-dagelmore | GPTranslate – Multilingual AI Translation for WordPress: Automatically Translate Websites | up to 2.31 | — | No fix listed | CNA |
- GPTranslate – Multilingual AI Translation for WordPress: Automatically Translate Websites Vendorjohn-dagelmore Affected up to 2.31 Fixed in — No fix listed CNA
Remediation
No fixed version listed by the sources yet.
Timeline
- 2026-10-02 Threatist record created from CVE-2026-9109
- 2026-10-03 Alias added: GHSA-j66v-hr5c-cjh2
References
Other 12
- https://www.wordfence.com/threat-intel/vulnerabilities/id/1c93b564-5428-4b0e-bbe8-f1e1e68940ac?source=cve
- https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.31/assets/js/admin.js#L1
- https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.31/gptranslate.php#L3654
- https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.31/gptranslate.php#L3578
- https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.31/gptranslate.php#L1134
- https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.27.5/assets/js/admin.js#L1
- https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.27.5/gptranslate.php#L3654
- https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.27.5/gptranslate.php#L3578
- https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.27.5/gptranslate.php#L1134
- https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.32/assets/js/admin.js#L1
- https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.32/gptranslate.php#L3574
- https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.32/gptranslate.php#L1104
More john-dagelmore vulnerabilities
- TI-2026-60447 GPTranslate <= 2.34.6 - Unauthenticated Sensitive Information Exposure in Public Frontend Inline Script CVSS 3.1MEDIUM 5.3
- TI-2026-86490 Stored cross-site scripting in WPSpeed via display names CVSS 3.1MEDIUM 6.4
Sources
- CVE-2026-9109 · CVE Program
- CVE-2026-9109 · NVD
- FIRST EPSS
- GHSA-j66v-hr5c-cjh2 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences