Các nhà nghiên cứu an ninh mạng đã tiết lộ một lỗ hổng bảo mật nghiêm trọng trong Ollama. Nếu bị khai thác thành công, lỗ hổng này có thể cho phép kẻ tấn công từ xa, không cần xác thực, rò rỉ toàn bộ bộ nhớ tiến trình của ứng dụng.
Lỗi out-of-bounds read này có khả năng ảnh hưởng đến hơn 300.000 máy chủ trên toàn cầu, được theo dõi dưới mã định danh CVE-2026-7482 (điểm CVSS: 9.1). Cyera đã đặt mật danh cho lỗ hổng này là Bleeding Llama.
Ollama là một framework mã nguồn mở phổ biến cho phép chạy các Large Language Models (LLMs) cục bộ thay vì trên đám mây. Trên GitHub, dự án này đã nhận được hơn 171.000 sao và được fork hơn 16.100 lần.
"Ollama các phiên bản trước 0.17.1 chứa một lỗ hổng heap out-of-bounds read trong bộ nạp mô hình GGUF," theo mô tả về lỗi trên CVE.org. "Endpoint /api/create chấp nhận một tệp GGUF do kẻ tấn công cung cấp, trong đó offset và kích thước tensor được khai báo vượt quá độ dài thực tế của tệp; trong quá trình quantization tại fs/ggml/gguf.go và server/quantization.go (WriteTo()), máy chủ sẽ đọc vượt quá heap buffer đã được cấp phát."
GGUF (GPT-Generated Unified Format) là một định dạng tệp được sử dụng để lưu trữ các Large Language Models giúp chúng có thể dễ dàng được tải và thực thi cục bộ. Nó tương tự như các định dạng lưu trữ mô hình phổ biến khác như PyTorch .pt/.pth (dựa trên module pickle của Python), safetensors và Open Neural Network Exchange (ONNX).
Cốt lõi của vấn đề bắt nguồn từ việc Ollama sử dụng unsafe package khi tạo mô hình từ tệp GGUF, cụ thể là trong hàm mang tên "WriteTo()", qua đó cho phép thực hiện các thao tác bỏ qua các đảm bảo an toàn bộ nhớ của ngôn ngữ lập trình.
Trong một kịch bản tấn công giả định, kẻ xấu có thể gửi một tệp GGUF được tạo đặc biệt đến một máy chủ Ollama đang mở, với tensor shape được đặt thành một số rất lớn để kích hoạt lỗi out-of-bounds heap read trong quá trình tạo mô hình thông qua endpoint /api/create. Việc khai thác thành công lỗ hổng có thể làm rò rỉ dữ liệu nhạy cảm từ bộ nhớ tiến trình của Ollama.
Dữ liệu này có thể bao gồm các biến môi trường, API keys, system prompts và dữ liệu hội thoại của những người dùng đang truy cập đồng thời. Các thông tin này có thể bị trích xuất bằng cách tải các mô hình kết quả qua endpoint /api/push lên một registry do kẻ tấn công kiểm soát.
Chuỗi khai thác Bleeding Llama diễn ra qua ba bước:
- Tải lên một tệp GGUF được chế tạo với tensor shape bị thổi phồng lên máy chủ Ollama có thể truy cập qua mạng bằng yêu cầu HTTP POST.
- Sử dụng endpoint /api/create để kích hoạt quá trình tạo mô hình, gây ra lỗi out-of-bounds read.
- Sử dụng endpoint /api/push để trích xuất dữ liệu từ heap memory về một máy chủ bên ngoài.
"Kẻ tấn công có thể thu thập hầu như mọi thứ về tổ chức từ các suy luận AI của bạn — từ API keys, mã nguồn độc quyền, hợp đồng khách hàng và nhiều hơn thế nữa," nhà nghiên cứu bảo mật Dor Attias của Cyera chia sẻ.
"Ngoài ra, các kỹ sư thường kết nối Ollama với các công cụ như Claude Code. Trong những trường hợp đó, tác động còn nghiêm trọng hơn – tất cả đầu ra của công cụ đều chảy đến máy chủ Ollama, được lưu trong heap và có khả năng rơi vào tay kẻ tấn công."
Người dùng được khuyến nghị áp dụng các bản vá mới nhất, hạn chế truy cập mạng, kiểm tra các phiên bản đang chạy xem có bị lộ trên internet hay không và cách ly chúng sau tường lửa. Bạn cũng nên triển khai một proxy xác thực hoặc API gateway trước tất cả các phiên bản Ollama, vì REST API của nó không cung cấp tính năng xác thực mặc định.
Hai lỗi chưa được vá trong Ollama dẫn đến thực thi mã liên tục
Thông tin này xuất hiện cùng lúc khi các nhà nghiên cứu tại Striga chi tiết hóa hai lỗ hổng trong cơ chế cập nhật của Ollama trên Windows, có thể được kết hợp để thực thi mã liên tục (persistent code execution). Các thiếu sót này vẫn chưa được vá sau khi tiết lộ vào ngày 27 tháng 1 năm 2026 và đã được công bố sau khi kết thúc thời hạn 90 ngày.
Theo Bartłomiej "Bartek" Dmitruk, đồng sáng lập Striga, ứng dụng Windows desktop tự khởi động khi đăng nhập từ thư mục Windows Startup, lắng nghe trên 127.0.0.1:11434 và định kỳ kiểm tra các bản cập nhật trong nền qua endpoint /api/update để chạy bất kỳ bản cập nhật nào đang chờ xử lý vào lần khởi động ứng dụng tiếp theo.
Các lỗ hổng được xác định liên quan đến path traversal và thiếu kiểm tra chữ ký (missing signature check). Khi kết hợp với quy trình tự động khởi động khi đăng nhập, chúng có thể cho phép kẻ tấn công có khả năng tác động đến phản hồi cập nhật thực thi mã tùy ý mỗi khi người dùng đăng nhập. Các lỗi bao gồm:
- CVE-2026-42248 (điểm CVSS: 7.7) - Lỗ hổng thiếu xác minh chữ ký: không kiểm tra file thực thi cập nhật trước khi cài đặt, khác với phiên bản trên macOS.
- CVE-2026-42249 (điểm CVSS: 7.7) - Lỗ hổng path traversal: phát sinh từ việc trình cập nhật Windows tạo đường dẫn cục bộ cho thư mục tạm của bộ cài đặt trực tiếp từ HTTP response headers mà không thực hiện làm sạch (sanitize).
Để khai thác các lỗi này, kẻ tấn công cần kiểm soát một máy chủ cập nhật mà ứng dụng Ollama của nạn nhân có thể kết nối tới. Trong tình huống đó, một file thực thi tùy ý có thể được cung cấp như một phần của quá trình cập nhật và được ghi vào thư mục Windows Startup mà không gặp phải bất kỳ rào cản kiểm tra chữ ký nào.
Việc thiếu kiểm tra tính toàn vẹn cũng có thể tự nó dẫn đến thực thi mã mà không cần khai thác lỗi path traversal. Trong trường hợp này, bộ cài đặt được thả vào thư mục tạm dự kiến. Ở lần khởi chạy tiếp theo từ thư mục Startup, quy trình cập nhật được gọi mà không xác minh lại chữ ký, khiến mã của kẻ tấn công được thực thi.
Tuy nhiên, việc thực thi mã từ xa (RCE) này không có tính liên tục vì bản cập nhật hợp lệ tiếp theo sẽ ghi đè lên tệp tạm thời. Bằng cách kết hợp thêm lỗi path traversal, kẻ xấu có thể điều hướng file thực thi được ghi bên ngoài đường dẫn thông thường để đạt được khả năng thực thi mã liên tục.
Theo CERT Polska, đơn vị tiếp nhận quá trình công bố phối hợp, các phiên bản Ollama cho Windows từ 0.12.10 đến 0.17.5 đều dễ bị tấn công. Trong thời gian chờ đợi, người dùng được khuyến nghị tắt cập nhật tự động và xóa bất kỳ shortcut Ollama nào khỏi thư mục Startup ("%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup") để vô hiệu hóa con đường thực thi ngầm khi đăng nhập.
"Bất kỳ bản cài đặt Ollama cho Windows nào chạy phiên bản từ 0.12.10 đến 0.22.0 đều dễ bị tổn thương," Dmitruk cho biết. "Path traversal cho phép ghi các file thực thi do kẻ tấn công chọn vào thư mục Startup của Windows. Việc thiếu xác minh chữ ký sẽ giữ chúng ở đó: quy trình dọn dẹp sau khi ghi (vốn sẽ loại bỏ các tệp không có chữ ký) không hoạt động trên Windows. Ở lần đăng nhập tiếp theo, Windows sẽ chạy bất cứ thứ gì được để lại."
Chuỗi tấn công này tạo ra khả năng thực thi mã âm thầm, liên tục với đặc quyền của người dùng đang chạy Ollama. Các payload thực tế bao gồm reverse shells, info-stealers lấy cắp bí mật trình duyệt và SSH keys, hoặc các dropper tạo bàn đạp cho các cơ chế duy trì sự hiện diện khác. Việc xóa file thực thi lạ khỏi thư mục Startup có thể chấm dứt sự liên tục của mã độc, nhưng các lỗ hổng gốc vẫn tồn tại cho đến khi có bản vá chính thức.