Lỗ hổng zero-day nghiêm trọng: Rủi ro bảo mật và cách phòng tránh

Lỗ hổng zero-day nghiêm trọng: Rủi ro bảo mật và cách phòng tránh

Một lỗ hổng nghiêm trọng chưa được vá lỗi trong Cursor, trình soạn thảo mã nguồn phổ biến tích hợp AI với hơn 7 triệu nhà phát triển sử dụng, cho phép kẻ tấn công thực thi mã tùy ý trên hệ thống Windows. Việc mở một kho lưu trữ (repository) độc hại là đủ để kích hoạt đường dẫn thực thi này, không yêu cầu bất kỳ tương tác nào từ người dùng như nhấp chuột, xác nhận hoặc phê duyệt.

Lỗ hổng nghiêm trọng trong Cursor

Lỗ hổng này được phát hiện bởi công ty bảo mật Mindgard vào ngày 15 tháng 12 năm 2025 và đã được báo cáo cho đội ngũ bảo mật của Cursor cùng ngày. Mặc dù có 197 phiên bản được phát hành sau đó, lỗ hổng vẫn tồn tại trong bản dựng mới nhất được kiểm tra, dẫn đến việc Mindgard công khai thông tin sau bảy tháng im lặng từ nhà cung cấp.

Nguyên nhân cốt lõi của lỗ hổng

Lỗ hổng bắt nguồn từ cách Cursor phân giải các tệp nhị phân Git khi tải một dự án phát triển. Một trong những vị trí mà Cursor tìm kiếm là thư mục gốc (workspace root) của dự án. Nếu kẻ tấn công đặt một tệp độc hại có tên git.exe vào thư mục gốc đó, Cursor sẽ tự động thực thi nó như một phần của quy trình phân giải đường dẫn thông thường. Do trình soạn thảo thực hiện tìm kiếm này một cách ngầm định, nó sẽ kích hoạt việc thực thi mà không có bất kỳ cảnh báo bảo mật hay thông báo nào cho người dùng.

Ảnh hưởng cấu trúc của vòng lặp thực thi tự động này đã được phân tích chi tiết trong báo cáo chính thức về zero-day vulnerability của Mindgard. Trong quá trình thử nghiệm, Mindgard đã chứng minh vấn đề này bằng cách sử dụng một tệp nhị phân Windows Calculator được đổi tên làm bằng chứng khái niệm (proof-of-concept) vô hại. Chỉ cần mở thư mục dự án trong Cursor đã gây ra việc thực thi lặp đi lặp lại của tệp nhị phân, tạo ra nhiều phiên bản Calculator theo thời gian khi IDE gọi lại tệp trong quá trình hoạt động nền.

Các bản ghi từ Sysinternals Process Monitor đã xác nhận rằng tiến trình cha Cursor.exe đã khởi tạo tệp nhị phân được đặt thông qua một truy vấn tiêu chuẩn git rev-parse --show-toplevel, được xác minh lần cuối trên phiên bản Cursor 3.2.16.

Tác động thực tế và nguy cơ tấn công

Trong một kịch bản thực tế, tệp thực thi Calculator này có thể được thay thế bằng một vectơ tấn công nguy hiểm, chẳng hạn như trình tải mã độc ransomware, công cụ đánh cắp thông tin đăng nhập hoặc keylogger hoạt động ngầm dưới mức đặc quyền hiện tại của nạn nhân. Điều này cho thấy mối đe dọa tiềm tàng từ việc thực thi mã tùy ý trên các hệ thống của nhà phát triển.

Quy trình công bố lỗ hổng

Quá trình liên hệ của Mindgard tuân theo các giao thức công bố phối hợp tiêu chuẩn của ngành:

  • Ngày 15 tháng 12 năm 2025: Phát hiện lỗ hổng và báo cáo cho Cursor.
  • Các ngày tiếp theo: Theo dõi và nhắc nhở về lỗ hổng.

Sự chậm trễ kéo dài trong việc ưu tiên các lỗ hổng môi trường phát triển quan trọng này phản ánh những lo ngại rộng lớn hơn trong ngành về cách các tập lệnh của bên thứ ba không an toàn có thể xâm phạm các điểm cuối của nhà phát triển. Ví dụ, một sự cố tương tự đã được ghi nhận khi các gói Go độc hại bị vũ khí hóa để tấn công.

Các biện pháp phòng ngừa và giảm thiểu rủi ro

Vì hiện tại không có bản vá chính thức từ nhà cung cấp, quản trị viên và người dùng cuối phải dựa vào các biện pháp kiểm soát bảo mật bù đắp để hạn chế sự phơi nhiễm của họ. Đây là một ví dụ điển hình về rủi ro bảo mật cần được chú ý.

Khuyến nghị cho quản trị viên doanh nghiệp

Các nhóm bảo mật doanh nghiệp quản lý các điểm cuối Windows nên triển khai các quy tắc từ chối dựa trên đường dẫn (path-based deny rules) thay vì các biện pháp kiểm soát dựa trên mã băm (hash-based controls). Điều này có thể bao gồm việc cấu hình chính sách nhóm (Group Policy) hoặc sử dụng các giải pháp bảo mật nâng cao để ngăn chặn việc thực thi các tệp git.exe không mong muốn trong các thư mục nhạy cảm.

Ví dụ về quy tắc Deny List (ngăn chặn) bằng cách sử dụng AppLocker hoặc WDAC:

<Deny ConditionType="Path" Path="C:\Users\*\*\git.exe" />
<Deny ConditionType="Path" Path="C:\Program Files\*\*\git.exe" />

Khuyến nghị cho nhà phát triển cá nhân

Các nhà phát triển cá nhân nên thực hiện các biện pháp kiểm soát nghiêm ngặt khi làm việc với các kho lưu trữ bên ngoài:

  • Cẩn trọng với mã nguồn không tin cậy: Chỉ tải xuống và mở các dự án từ các nguồn đáng tin cậy. Luôn kiểm tra nguồn gốc của kho lưu trữ trước khi thực hiện.
  • Sử dụng môi trường cô lập: Xem xét sử dụng máy ảo (VM) hoặc container để mở các dự án có nguồn gốc không xác định, giảm thiểu khả năng ảnh hưởng đến hệ thống chính.
  • Kiểm tra tệp nhị phân trong PATH: Đảm bảo rằng các tệp thực thi hệ thống quan trọng như git.exe không bị ghi đè trong thư mục dự án hoặc các thư mục có thể truy cập được.
  • Cập nhật thường xuyên: Luôn cập nhật trình soạn thảo Cursor và các công cụ phát triển khác lên phiên bản mới nhất để nhận các bản vá bảo mật.

Việc không có bản vá chính thức nhấn mạnh tầm quan trọng của việc chủ động áp dụng các biện pháp bảo mật. Lỗ hổng này là một lời nhắc nhở về sự cần thiết của việc cập nhật bản vá và thực hiện kiểm soát truy cập chặt chẽ trong môi trường phát triển phần mềm.