Lỗ hổng DeepSeek Harness cho phép Agent AI tự vô hiệu hóa Sandbox mà không cần phê duyệt

Một lỗ hổng trong DeepSeek Harness, công cụ mã nguồn mở dùng để chạy các Agent AI lập trình, cho phép agent thoát khỏi sandbox và truy cập hệ thống chỉ bằng một lệnh duy nhất. Lỗ hổng CVE-2026-82533 này cho phép vô hiệu hóa các biện pháp bảo mật mà không cần sự phê duyệt của người dùng.
Lỗ hổng DeepSeek Harness

Một lỗ hổng trong DeepSeek Harness, công cụ mã nguồn mở của DeepSeek dùng để chạy các Agent AI lập trình trên máy tính của nhà phát triển, cho phép một agent đang bị giới hạn trong sandbox có thể tự tắt sandbox của chính mình chỉ bằng một lệnh duy nhất.

Công cụ này chạy các lệnh của agent bên trong một sandbox của hệ điều hành, nhờ đó một agent khi làm việc trên các tệp không đáng tin cậy sẽ không thể ghi dữ liệu ra ngoài không gian làm việc (workspace). Tuy nhiên, agent có thể loại bỏ giới hạn đó bằng cách gọi đến giao diện web của chính công cụ trên cùng một máy tính, sau đó các lệnh của nó sẽ chạy bên ngoài sandbox mà không cần bất kỳ thông báo phê duyệt nào.

Lỗ hổng này hoạt động trên các cài đặt mặc định cho đến khi DeepSeek tung bản vá vào ngày 27 tháng 8. Cuộc tấn công yêu cầu agent phải đọc được một đoạn văn bản do kẻ tấn công cung cấp để kích hoạt lệnh gọi này.

Lỗ hổng được theo dõi dưới mã định danh CVE-2026-82533. VulnCheck, đơn vị chỉ định mã này, đã công bố hồ sơ vào ngày 8 tháng 9 và xếp hạng mức độ nghiêm trọng là 9.4 trên 10.

OX Research, công ty bảo mật đã báo cáo lỗ hổng, cho biết chỉ cần một lệnh shell duy nhất là đủ. Lệnh này sẽ gọi giao diện cục bộ của công cụ và chuyển phiên làm việc của agent sang chế độ gọi là danger-full-access, chế độ này sẽ tắt sandbox và dừng các thông báo phê duyệt.

Ban đầu, các lệnh thông thường không cần phê duyệt. Việc phê duyệt chỉ được áp dụng khi một lệnh yêu cầu quyền truy cập rộng hơn quyền mà phiên hiện có, và lệnh gọi này không yêu cầu quyền đó. Thay vào đó, nó thay đổi thiết lập của toàn bộ phiên làm việc.

OX cho biết họ đã kiểm tra để đảm bảo sandbox vẫn hoạt động bình thường trước khi thực hiện thoát (escape). Họ đã chạy hai phiên với cùng cài đặt mặc định và đưa ra cùng một lệnh cho cả hai. Phiên đã thực hiện lệnh gọi thoát sandbox có thể ghi vào một thư mục bên ngoài workspace, trong khi phiên còn lại bị chặn đứng.

Sandbox này thực tế chỉ bao quát các tệp tin. Tài liệu hướng dẫn command-line cho phiên bản bị ảnh hưởng cho biết theo cài đặt mặc định, các thao tác ghi được giữ bên trong workspace và các thư mục tạm thời, trong khi "việc đọc và truy cập mạng không bị giới hạn."

Minh họa spoofing

Điều này dẫn đến việc giao diện của công cụ có thể truy cập được từ bên trong sandbox. Công cụ này cũng cung cấp cho shell của agent địa chỉ của giao diện đó và mã định danh phiên hiện tại, vì vậy agent không cần phải tự tìm kiếm chúng.

Giao diện này vốn không có cơ chế xác thực. Trong phiên bản bị ảnh hưởng, quy trình kiểm tra quyền truy cập chỉ đọc Host header của yêu cầu mà không bao giờ kiểm tra nguồn gốc kết nối. Một dòng chú thích trong tệp đó thừa nhận rằng việc kiểm tra này "không phải là một lớp xác thực (auth layer)."

Đây chính là lỗ hổng mà hồ sơ CVE mô tả. Vì công cụ tin tưởng vào header do phía client cung cấp, một máy tính bên ngoài có thể giả mạo là máy cục bộ và điều khiển agent. Mặc dù giao diện dòng lệnh của công cụ từ chối lắng nghe trên tất cả các network interface, nhưng để truy cập từ bên ngoài, người dùng cần phải chuyển tiếp (forward) hoặc proxy cổng thông qua tunnel, SSH forward, hoặc một trình biên tập code.

Nhật ký phiên làm việc

Cùng một giao diện này cũng phục vụ yêu cầu tải xuống toàn bộ log của phiên làm việc. Cố vấn của VulnCheck tuyên bố rằng bất kỳ ai truy cập được vào giao diện đều có thể lấy toàn bộ lịch sử trò chuyện đã lưu mà không cần khóa xác thực.

Các phiên bản bị ảnh hưởng và hướng dẫn cài đặt

Các phiên bản 0.1.1-rc.2 trở về trước đều bị ảnh hưởng. Hồ sơ xác định 0.1.2-alpha.1 là phiên bản đã vá, nhưng phiên bản đó chưa bao giờ được xuất bản lên npm registry – nơi mà các hướng dẫn của dự án điều hướng người dùng đến.

Phiên bản Trạng thái Ngày phát hành
0.1.1-rc.2 trở về trước Bị ảnh hưởng 0.1.1-rc.2 xuất bản ngày 21/8
0.1.2-alpha.1 Đã vá, chỉ có trên GitHub 27/8, không có trên npm
0.1.2-alpha.2 Bản vá đầu tiên trên npm 30/8
0.1.2-rc.1 Bản npm hiện tại, đã có bản vá 3/9

The Hacker News đã kiểm tra npm registry vào ngày 9 tháng 9 và thấy rằng bản phát hành đầu tiên có thay đổi về xác thực là 0.1.2-alpha.2, ba ngày sau khi bản vá được đẩy lên GitHub.

  • Cài đặt phiên bản 0.1.2-alpha.2 hoặc mới hơn. Phiên bản hiện tại trên registry là 0.1.2-rc.1.
  • Nếu bạn cài đặt qua ứng dụng desktop của bên thứ ba, hãy kiểm tra xem ứng dụng đó đi kèm với phiên bản harness nào.
  • Nếu không thể nâng cấp, hãy dừng giao diện web khi không sử dụng và gỡ bỏ mọi tunnel, proxy hoặc port forward dẫn đến nó.

Bản vá bổ sung cơ chế kiểm tra định danh cho giao diện. Công cụ hiện sẽ in ra một token dùng một lần tại địa chỉ khởi động; trình duyệt sẽ đổi token đó lấy một cookie đã ký, và mọi lệnh gọi đến giao diện đều yêu cầu cookie này.

Tuy nhiên, bản vá không thay đổi cơ chế sandbox. Trong bản 0.1.2-rc.1, tài liệu vẫn nói rằng việc đọc và truy cập mạng không bị giới hạn, và shell của agent vẫn nhận được địa chỉ giao diện. Chưa có nguồn tin nào xác nhận liệu một agent chạy bên trong workspace có thể lấy được một phiên hợp lệ theo cơ chế mới hay không.

Các bản build desktop của bên thứ ba thường đi kèm bản sao harness riêng của họ. Một bản build trên Windows đã cố định phiên bản 0.1.1-rc.2 vào cuối tháng 8 và mới chuyển sang 0.1.3-alpha.1 (đã vá) vào ngày 6 tháng 9. Bất kỳ ai cài đặt harness thông qua các trình bao (wrapper) nên kiểm tra lại phiên bản.

Một harness dành cho coding agent là mục tiêu tấn công giá trị vì nó nắm giữ quyền thực thi shell. DeepSeek Harness chạy các lệnh của agent dưới tài khoản đã khởi chạy nó.

Thông báo an toàn của dự án cho biết phần mềm chưa qua kiểm định bảo mật, và cơ chế sandbox cũng như thông báo phê duyệt "không đảm bảo việc cách ly hoàn toàn hoặc ngăn chặn thiệt hại." Người dùng không nên chỉ dựa vào công cụ này làm lớp kiểm soát bảo mật duy nhất khi xử lý các công việc không đáng tin cậy.

Các nhà nghiên cứu đã liên tục phát hiện các coding agent thoát khỏi sandbox trong năm nay, bao gồm một loạt lỗ hổng mà trong đó cấu hình của chính kho lưu trữ (repository) đã khiến agent thực thi mã độc bên ngoài sandbox.

Các báo cáo từ cộng đồng đã mô tả lỗ hổng thoát sandbox này vào tháng 8

Hai nhà phát triển đã mô tả cùng một lỗi thoát sandbox này trên bảng thảo luận của chính DeepSeek trước khi mã CVE được tạo ra. Vào ngày 13 tháng 8, một người đã đăng một báo cáo cho thấy một tiến trình vẫn đang bị giữ trong sandbox nhưng vẫn tiếp cận được giao diện cục bộ và chuyển phiên làm việc sang danger-full-access.

Vào ngày 14 tháng 8, một người khác cũng đăng báo cáo về cùng giao diện đó, liệt kê các yêu cầu mà nó chấp nhận mà không cần bất kỳ thông tin xác thực nào.

Báo cáo thứ hai cũng lưu ý rằng dự án không có tệp chính sách bảo mật và không có kênh báo cáo lỗ hổng riêng tư. Đến nay dự án vẫn chưa có tệp chính sách bảo mật này.

OX Research đã báo cáo lỗ hổng cho VulnCheck vào ngày 24 tháng 8 và ghi nhận công lao của Nir Zadok và Moshe Siman Tov Bustan. Tuy nhiên, bài đăng của OX không đề cập đến các báo cáo cộng đồng trước đó.

Phía dự án hiện vẫn liệt kê thay đổi này trong các thay đổi thông thường (routine changes) là "yêu cầu xác thực token một lần để truy cập mạng", mà không có thông báo bảo mật hay đề cập đến mã CVE trong phần ghi chú phát hành.