Trợ lý lập trình AI của bạn có thể đang ghi đè các khóa SSH mà bạn không hề hay biết. Wiz Research đã phát hiện ra một lỗ hổng mang tên “GhostApproval”, cho phép một liên kết tượng trưng (symlink) project_settings.json độc hại trỏ đến các khóa riêng tư (private keys), và hộp thoại phê duyệt cho từng hành động hiện lên chỉ hiển thị tên của symlink đó. Nếu bạn nhấn phê duyệt hộp thoại, bạn vừa trao cho trợ lý quyền truy cập không giới hạn vào các thông tin xác thực của mình.

Cách thức khai thác hoạt động

  • Kẻ tấn công thêm một tệp có tên là project_settings.json vào một kho lưu trữ (repository).
  • Tệp đó không phải là một tệp JSON thông thường; nó là một liên kết tượng trưng (symlink) điều hướng đến khóa riêng tư ~/.ssh/id_rsa (hoặc tương đương) của người dùng.
  • Khi lập trình viên yêu cầu trợ lý AI “thiết lập không gian làm việc” (set up the workspace), trợ lý sẽ đi theo symlink và chuẩn bị ghi vào tệp khóa SSH thực sự.
  • Hộp thoại phê duyệt xuất hiện chỉ liệt kê project_settings.json. Nó không phân giải symlink để hiển thị đường dẫn thực tế trên đĩa.
  • Việc nhấp vào “Approve” sẽ cấp quyền cho trợ lý sửa đổi khóa riêng tư, từ đó làm lộ danh tính của người dùng trên mọi dịch vụ tin cậy khóa đó.

Lỗ hổng này xuất hiện trong sáu công cụ được sử dụng rộng rãi: Amazon Q Developer, Claude Code, Augment, Cursor, Google AntigravityWindsurf. Tất cả chúng đều hiển thị hộp thoại gây hiểu lầm tương tự vì giao diện người dùng (UI) hiển thị tên mà nó nhận được, chứ không phải mục tiêu đã được phân giải.

Tại sao các hộp thoại phê duyệt theo từng hành động là chưa đủ

Việc phê duyệt theo từng hành động giả định rằng con người có thể kiểm tra kỹ lưỡng từng thao tác mà AI thực hiện. Trên thực tế, điều này buộc bạn phải đưa ra những phán đoán chính xác tuyệt đối sau mỗi vài giây—một điều mà không ai có thể làm nhanh hơn tốc độ xử lý của tác nhân (agent).

Các nhà cung cấp đang làm gì – và tại sao điều đó lại quan trọng

  • Amazon, Google và Cursor đã khắc phục lỗi này.
  • Anthropic (nhà sản xuất Claude Code) cho rằng người dùng chỉ nên phê duyệt những gì họ hiểu. Điều này phớt lờ gánh nặng nhận thức khi phải phát hiện các symlink và giả định rằng người dùng có thể kiểm tra mọi đường dẫn tệp ngay lập tức—một kỳ vọng không thực tế.
  • Cursor cũng tiết lộ một vấn đề riêng biệt, được gọi là DuneSlide, cho phép kẻ tấn công thực thi mã trên máy tính mà không cần bất kỳ hộp thoại phê duyệt nào. Công ty đã vá lỗi đó, cho thấy các trợ lý này có thể nhanh chóng trở thành các vector tấn công như thế nào khi việc kiểm tra quyền hạn còn yếu.

Sự khác biệt trong cách phản ứng đặt ra một câu hỏi sâu sắc hơn: liệu bảo mật nên là một hộp thoại phản ứng sau sự việc, hay là một ranh giới được xác định trước mà trợ lý không bao giờ được phép vượt qua?

Quyền hạn theo phạm vi: một giải pháp thay thế thực tế

Thay vì yêu cầu phê duyệt cho mỗi thao tác tệp, các