{"schemaVersion":3,"id":"CVE-2025-10488","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"The Directorist: AI-Powered Business Directory Plugin with Classified Ads Listings plugin for WordPress is vulnerable to arbitrary file move due to insufficient file path validation in the add_listing_action AJAX action in all versions up to, and including, 8.4.8. This makes it possible for unauthenticated attackers to move arbitrary files on the server, which can easily lead to remote code execution when the right file is moved (such as wp-config.php).","dates":{"published":"2025-10-25T06:49:21.186Z","modified":"2026-04-08T16:41:39.661Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":8.1,"severity":"high","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":8.1,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":8.1,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"wordfence","score":8.1,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00911,"percentile":0.59564,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":0.06099999999999994,"baselineDate":"2026-09-21T00:00:00.000Z","baselineScore":0.0085},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00911,"percentile":0.59564}],"last30":[{"date":"2026-09-21T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0085,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00911,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00911,"percentile":0.59564}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-22","name":"Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","description":"The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/22.html"}],"affected":[{"vendor":"wordpress","product":"directorist","name":"Directorist: AI-Powered Business Directory, Listings & Classified Ads","label":"directorist","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≤ 8.4.8 (fixed in 8.4.9)","noFixRecorded":false,"fixedIn":"8.4.9"}],"versionsText":"≤ 8.4.8 (fixed in 8.4.9)","eol":null,"hubHref":null},{"vendor":"wpwax","product":"directorist: ai-powered business directory, listings & classified ads","name":"Directorist: AI-Powered Business Directory, Listings & Classified Ads","label":"directorist: ai-powered business directory, listings & classified ads","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≤ 8.4.8","noFixRecorded":false,"fixedIn":null}],"versionsText":"≤ 8.4.8","eol":null,"hubHref":null}],"affectedCount":2,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/2249ef72-9955-4636-b32f-e88720923268?source=cve","label":"www.wordfence.com/threat-intel/vulnerabilities/id/2249ef72-9955-4636-b32f-e88720923268?source=cve","hostname":"www.wordfence.com","tags":[]},{"url":"https://plugins.trac.wordpress.org/browser/directorist/tags/8.4.5/includes/classes/class-add-listing.php#L634","label":"plugins.trac.wordpress.org/browser/directorist/tags/8.4.5/includes/classes/class-add-listing.php","hostname":"plugins.trac.wordpress.org","tags":[]},{"url":"https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3377181%40directorist&new=3377181%40directorist&sfp_email=&sfph_mail=","label":"plugins.trac.wordpress.org/changeset","hostname":"plugins.trac.wordpress.org","tags":[]},{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/2249ef72-9955-4636-b32f-e88720923268","label":"www.wordfence.com/threat-intel/vulnerabilities/id/2249ef72-9955-4636-b32f-e88720923268","hostname":"www.wordfence.com","tags":["Vendor Advisory"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2025-10-25T06:49:21.186Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-04-08T16:41:39.661Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":33,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-22T09:56:45.695Z","stale":false,"partial":false}}