FKIE_CVE-2026-9109
Vulnerability from fkie_nvd - Published: 2026-06-13 07:16 - Updated: 2026-07-23 09:10
Severity
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.
References
Impacted products
| Vendor | Product | Version |
|---|
{
"affected": [
{
"affectedData": [
{
"defaultStatus": "unaffected",
"product": "GPTranslate \u2013 Multilingual AI Translation for WordPress: Automatically Translate Websites",
"vendor": "john-dagelmore",
"versions": [
{
"lessThanOrEqual": "2.31",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"source": "security@wordfence.com"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "The GPTranslate \u2013 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."
},
{
"lang": "es",
"value": "El plugin GPTranslate - Multilingual AI Translation for WordPress: Automatically Translate Websites para WordPress es vulnerable a cross-site scripting almacenado a trav\u00e9s del almacenamiento de traducci\u00f3n de la API REST en todas las versiones hasta la 2.31, inclusive, debido a la sanitizaci\u00f3n insuficiente de la entrada y al escape de la salida. Esto hace posible que atacantes no autenticados inyecten scripts web arbitrarios en p\u00e1ginas que se ejecutar\u00e1n cada vez que un usuario acceda a una p\u00e1gina inyectada. La clave API derivada determin\u00edsticamente (sha256 de la URL del sitio) se imprime en el c\u00f3digo fuente HTML de cada p\u00e1gina a trav\u00e9s de la variable JavaScript gptApiKey, lo que significa que cualquier visitante no autenticado puede recuperar la clave y enviar cargas \u00fatiles de traducci\u00f3n maliciosas al endpoint /wp-json/gptranslate/v1/request sin ninguna precondici\u00f3n adicional."
}
],
"id": "CVE-2026-9109",
"lastModified": "2026-07-23T09:10:00.113",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 7.2,
"baseSeverity": "HIGH",
"confidentialityImpact": "LOW",
"integrityImpact": "LOW",
"privilegesRequired": "NONE",
"scope": "CHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N",
"version": "3.1"
},
"exploitabilityScore": 3.9,
"impactScore": 2.7,
"source": "security@wordfence.com",
"type": "Secondary"
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-9109",
"options": [
{
"exploitation": "none"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-06-15T17:22:03.582274Z",
"version": "2.0.3"
}
}
]
},
"published": "2026-06-13T07:16:14.853",
"references": [
{
"source": "security@wordfence.com",
"url": "https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.27.5/assets/js/admin.js#L1"
},
{
"source": "security@wordfence.com",
"url": "https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.27.5/gptranslate.php#L1134"
},
{
"source": "security@wordfence.com",
"url": "https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.27.5/gptranslate.php#L3578"
},
{
"source": "security@wordfence.com",
"url": "https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.27.5/gptranslate.php#L3654"
},
{
"source": "security@wordfence.com",
"url": "https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.31/assets/js/admin.js#L1"
},
{
"source": "security@wordfence.com",
"url": "https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.31/gptranslate.php#L1134"
},
{
"source": "security@wordfence.com",
"url": "https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.31/gptranslate.php#L3578"
},
{
"source": "security@wordfence.com",
"url": "https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.31/gptranslate.php#L3654"
},
{
"source": "security@wordfence.com",
"url": "https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.32/assets/js/admin.js#L1"
},
{
"source": "security@wordfence.com",
"url": "https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.32/gptranslate.php#L1104"
},
{
"source": "security@wordfence.com",
"url": "https://plugins.trac.wordpress.org/browser/gptranslate/tags/2.32/gptranslate.php#L3574"
},
{
"source": "security@wordfence.com",
"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/1c93b564-5428-4b0e-bbe8-f1e1e68940ac?source=cve"
}
],
"sourceIdentifier": "security@wordfence.com",
"vulnStatus": "Deferred",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-79"
}
],
"source": "security@wordfence.com",
"type": "Secondary"
}
]
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…