Cảnh báo khẩn cấp: Lỗ hổng Ollama nghiêm trọng cho phép RCE

Cảnh báo khẩn cấp: Lỗ hổng Ollama nghiêm trọng cho phép RCE

Một lỗ hổng Ollama nghiêm trọng đã được phát hiện trong một trong những dự án mã nguồn mở phổ biến nhất trên GitHub, với hơn 155.000 lượt gắn sao. Lỗ hổng này cho phép kẻ tấn công thực thi mã tùy ý trên các hệ thống đang chạy phiên bản nền tảng dễ bị tổn thương, bằng cách khai thác các điểm yếu trong cơ chế phân tích cú pháp các tệp mô hình của phần mềm.

Ollama là một công cụ được sử dụng rộng rãi, cho phép các nhà phát triển và chuyên gia AI chạy các mô hình ngôn ngữ lớn (LLM) cục bộ mà không cần phụ thuộc vào các dịch vụ bên ngoài như OpenAI. Nền tảng này hỗ trợ nhiều mô hình mã nguồn mở, bao gồm gpt-oss, DeepSeek-R1, Meta’s Llama4 và Google’s Gemma3.

Nội dung
Phân Tích Lỗ Hổng Ollama: Out-Of-Bounds Write và Khai Thác RCE

Chi Tiết Kỹ Thuật về Lỗ Hổng Out-Of-Bounds Write
Cơ Chế Khai Thác Lỗ Hổng Remote Code Execution
Tác Động và Rủi Ro An Ninh Mạng Từ Lỗ Hổng Ollama

Mức Độ Nghiêm Trọng và Ảnh Hưởng
Đối Tượng Bị Ảnh Hưởng và Nguy Cơ
Giải Pháp và Khuyến Nghị Bảo Mật Quan Trọng

Cập Nhật Bản Vá Bảo Mật Lên Phiên Bản 0.7.0
Các Biện Pháp Phòng Ngừa và Tăng Cường Bảo Mật Bổ Sung

Phân Tích Lỗ Hổng Ollama: Out-Of-Bounds Write và Khai Thác RCE

Chi Tiết Kỹ Thuật về Lỗ Hổng Out-Of-Bounds Write

Các nhà nghiên cứu tại SonarSource đã phát hiện một lỗ hổng Ollama quan trọng thuộc loại Out-Of-Bounds Write trong quá trình kiểm tra bảo mật mã nguồn. Lỗ hổng này ảnh hưởng đến tất cả các phiên bản Ollama trước 0.7.0 và tồn tại trong cơ chế phân tích cú pháp tệp mô hình GGUF.

Cụ thể, khi xử lý các tệp mô hình GGUF được tạo riêng biệt, phần mềm Ollama thất bại trong việc xác thực đúng cách các giá trị metadata nhất định. Trong quá trình phân tích các mô hình `mllama` (một loại mô hình cụ thể được Ollama hỗ trợ), mã nguồn được viết bằng C++ không kiểm tra liệu các chỉ mục được chỉ định trong metadata của mô hình có nằm trong phạm vi giới hạn bộ nhớ cho phép hay không. Sự sơ suất này là nguyên nhân trực tiếp dẫn đến khả năng kẻ tấn công thao túng bộ nhớ vượt ra ngoài các ranh giới được cấp phát.

Lỗi Out-Of-Bounds Write xảy ra khi một chương trình cố gắng ghi dữ liệu vào một vị trí bộ nhớ nằm ngoài phạm vi được phân bổ hợp pháp cho nó. Trong trường hợp của Ollama, điều này có nghĩa là kẻ tấn công có thể ghi đè lên các vùng bộ nhớ quan trọng khác, có khả năng làm hỏng dữ liệu, thay đổi luồng điều khiển chương trình hoặc thậm chí chèn và thực thi mã độc.

Cơ Chế Khai Thác Lỗ Hổng Remote Code Execution

Con đường khai thác lỗ hổng Ollama này được thiết kế dựa trên việc tạo ra các tệp mô hình độc hại. Các tệp này chứa các mục metadata có kích thước quá lớn hoặc các chỉ mục lớp không hợp lệ. Khi Ollama xử lý các tệp mô hình GGUF đã được chế tạo đặc biệt này, lỗ hổng Out-Of-Bounds Write sẽ được kích hoạt.

Kẻ tấn công, sau khi giành được quyền truy cập vào API của Ollama, có thể tải và thực thi các mô hình đã được vũ khí hóa này. Việc kích hoạt lỗ hổng sẽ cho phép chúng ghi đè dữ liệu trên bộ nhớ, từ đó có thể thao túng con trỏ hàm hoặc các cấu trúc điều khiển chương trình khác để chèn và thực thi mã tùy ý. Kết quả cuối cùng là đạt được khả năng remote code execution (RCE) trên hệ thống mục tiêu.

SonarSource đã xác nhận lỗ hổng này có thể khai thác được trong các bản dựng không có cấu hình Position Independent Executable (PIE). PIE là một tính năng bảo mật giúp làm ngẫu nhiên địa chỉ bộ nhớ của các thành phần chương trình, khiến việc dự đoán và khai thác lỗ hổng bộ nhớ trở nên khó khăn hơn. Mặc dù các bản phát hành có bao gồm cơ chế bảo vệ PIE, các chuyên gia tin rằng việc khai thác vẫn khả thi với nỗ lực bổ sung, mặc dù có độ phức tạp cao hơn.

Lỗ hổng này đặc biệt nguy hiểm vì mã phân tích mô hình `mllama` được viết bằng C++ – một ngôn ngữ nổi tiếng với việc yêu cầu quản lý bộ nhớ thủ công và dễ phát sinh các lỗi liên quan đến bộ nhớ, như Out-Of-Bounds Write, nếu không được triển khai cẩn thận.

Tác Động và Rủi Ro An Ninh Mạng Từ Lỗ Hổng Ollama

Mức Độ Nghiêm Trọng và Ảnh Hưởng

Một lỗ hổng Out-Of-Bounds Write có khả năng dẫn đến remote code execution được đánh giá là rất nghiêm trọng theo tiêu chuẩn an ninh mạng. Điều này đặt ra rủi ro đáng kể cho tính toàn vẹn, bảo mật và khả năng sẵn sàng của các hệ thống sử dụng Ollama, đặc biệt là trong môi trường sản xuất hoặc các ứng dụng phụ thuộc vào tính toán LLM cục bộ.

Kẻ tấn công thành công có thể giành quyền kiểm soát hoàn toàn hệ thống bị ảnh hưởng. Điều này bao gồm khả năng truy cập, sửa đổi hoặc đánh cắp dữ liệu nhạy cảm, cài đặt mã độc bổ sung (ví dụ: ransomware hoặc backdoor), hoặc sử dụng tài nguyên điện toán của hệ thống để thực hiện các hoạt động trái phép (chẳng hạn như khai thác tiền điện tử hoặc phát tán cuộc tấn công DDoS). Hệ thống Ollama bị xâm nhập cũng có thể bị lợi dụng để thay đổi hành vi của các mô hình LLM, dẫn đến kết quả không mong muốn hoặc độc hại.

Đối Tượng Bị Ảnh Hưởng và Nguy Cơ

Tất cả người dùng đang chạy các phiên bản Ollama cũ hơn 0.7.0 đều phải đối mặt với các rủi ro bảo mật đáng kể. Các tổ chức sử dụng Ollama trong môi trường sản xuất cần đặc biệt chú ý đến lỗ hổng Ollama này, vì việc khai thác thành công có thể dẫn đến những hậu quả nghiêm trọng về an toàn thông tin, tài chính và vận hành.

Nguy cơ này không chỉ giới hạn ở việc mất dữ liệu mà còn bao gồm cả sự gián đoạn dịch vụ, thiệt hại về uy tín và khả năng phải đối mặt với các quy định về bảo vệ dữ liệu.

Giải Pháp và Khuyến Nghị Bảo Mật Quan Trọng

Cập Nhật Bản Vá Bảo Mật Lên Phiên Bản 0.7.0

Để khắc phục triệt để lỗ hổng Ollama này, nhóm phát triển Ollama đã giải quyết vấn đề bằng cách phát hành phiên bản 0.7.0. Trong phiên bản này, họ đã tiến hành viết lại hoàn toàn mã xử lý mô hình `mllama` dễ bị tổn thương sang ngôn ngữ Go, loại bỏ việc triển khai C++ không an toàn trước đó. Ngôn ngữ Go cung cấp các cơ chế quản lý bộ nhớ an toàn hơn, giúp ngăn chặn các lỗi như Out-Of-Bounds Write.

Người dùng đang chạy các phiên bản cũ hơn phải đối mặt với rủi ro bảo mật đáng kể và được khuyến nghị mạnh mẽ nâng cấp lên bản phát hành mới nhất ngay lập tức. Việc áp dụng bản vá bảo mật này thông qua cập nhật lên phiên bản 0.7.0 là biện pháp hiệu quả và cấp bách nhất để loại bỏ nguy cơ khai thác lỗ hổng remote code execution này.

Tham khảo thêm chi tiết kỹ thuật chuyên sâu về lỗ hổng và giải pháp đã được triển khai tại bài viết của SonarSource: Ollama: Remote Code Execution – Securing the code that runs LLMs.

Các Biện Pháp Phòng Ngừa và Tăng Cường Bảo Mật Bổ Sung

  • Kiểm tra và kiểm soát triển khai: Các tổ chức sử dụng Ollama trong môi trường sản xuất nên kiểm tra kỹ lưỡng tất cả các triển khai của mình để đảm bảo chúng đã được cập nhật lên phiên bản an toàn và không có bất kỳ phiên bản dễ bị tổn thương nào còn tồn tại.
  • Quản lý và kiểm soát phiên bản mô hình: Thực hiện các biện pháp kiểm soát phiên bản nghiêm ngặt đối với các mô hình AI được sử dụng. Điều này bao gồm chỉ tải và sử dụng các tệp mô hình từ các nguồn đáng tin cậy, đã được xác minh và kiểm tra bảo mật.
  • Ngăn chặn tải tệp mô hình không đáng tin cậy: Thiết lập các chính sách và cơ chế kỹ thuật để ngăn chặn người dùng hoặc hệ thống tải lên hoặc xử lý các tệp mô hình từ các nguồn không xác định hoặc không đáng tin cậy.
  • Phân đoạn mạng: Cô lập các hệ thống chạy Ollama trong các phân đoạn mạng riêng biệt để giảm thiểu phạm vi ảnh hưởng nếu xảy ra sự cố.
  • Nguyên tắc đặc quyền tối thiểu: Đảm bảo rằng các tiến trình Ollama chạy với các quyền hạn tối thiểu cần thiết để thực hiện chức năng của chúng, hạn chế khả năng gây hại của kẻ tấn công nếu hệ thống bị xâm nhập.
  • Giám sát hệ thống và phát hiện xâm nhập: Triển khai các giải pháp giám sát mạnh mẽ để phát hiện hoạt động bất thường, các mẫu truy cập API đáng ngờ hoặc các dấu hiệu khai thác tiềm năng trên các hệ thống chạy Ollama.

Việc áp dụng toàn diện các khuyến nghị này sẽ giúp giảm thiểu đáng kể rủi ro từ lỗ hổng Ollama và tăng cường an toàn thông tin tổng thể cho các môi trường sử dụng nền tảng này.