Một lỗ hổng Windows mới được tiết lộ (CVE-2026-35603) cho phép bất kỳ người dùng không phải quản trị viên nào cũng có thể đưa một tệp cấu hình độc hại vào thư mục dùng chung C:\ProgramData, nơi mà một số trợ lý lập trình hỗ trợ bởi AI sẽ tự động đọc các cài đặt. Khi một quản trị viên chạy một trong những công cụ đó—Claude Code, Cursor, Codex CLI hoặc Gemini CLI—tệp độc hại sẽ được thực thi với đặc quyền hệ thống đầy đủ, giúp kẻ tấn công kiểm soát máy tính mà không có bất kỳ cảnh báo nào.

Tại sao vấn đề này lại quan trọng

Các trợ lý lập trình AI đã trở nên phổ biến trong các quy trình phát triển, thường được chạy với quyền nâng cao để truy cập trình biên dịch, trình quản lý gói hoặc các kho lưu trữ nội bộ. Khả năng chèn mã chạy dưới quyền quản trị viên sẽ vượt qua sandbox ở cấp độ người dùng thông thường vốn dùng để bảo vệ máy trạm. Trong thực tế, một tài khoản có đặc quyền thấp có thể cài cắm một tệp, chờ quản trị viên khởi chạy trợ lý, và sau đó khiến trợ lý thực thi các lệnh tùy ý, thay đổi các tệp hệ thống hoặc thu thập thông tin xác thực. Tác động có thể từ việc tạo ra một bàn đạp âm thầm cho mã độc dai dẳng đến việc chiếm quyền kiểm soát hoàn toàn các máy trạm của doanh nghiệp.

Cách thức lỗ hổng hoạt động

Cả bốn công cụ đều chia sẻ một lựa chọn thiết kế đơn giản: chúng lưu trữ cấu hình trên toàn máy tính trong C:\ProgramData và tự động tải các tệp đó khi khởi động. Trên Windows, thư mục đó có thể được đọc và ghi bởi bất kỳ người dùng tiêu chuẩn nào. Các công cụ này không xác minh chủ sở hữu hoặc tính toàn vẹn của các tệp trước khi phân tích chúng.

Công cụ Tệp cấu hình dự kiến
Claude Code managed-settings.json
Cursor hooks.json
Codex CLI config.toml
Gemini CLI system-defaults.json

Kẻ tấn công tạo một tệp với tên chính xác mà công cụ tìm kiếm, đặt nó vào thư mục tương ứng trong C:\ProgramData, và chờ đợi. Khi quản trị viên mở trợ lý, chương trình sẽ đọc tệp do kẻ tấn công kiểm soát và thực thi nội dung của nó. Trong trường hợp của Codex CLI, cấu hình độc hại cũng có thể tắt các sandbox bảo mật tích hợp, làm mở rộng thêm bề mặt tấn công.

Anthropic, nhà sản xuất Claude Code, đã chuyển các cài đặt của mình sang một vị trí được bảo vệ, qua đó ngăn chặn hiệu quả lỗ hổng cho sản phẩm đó. Các nhà cung cấp khác vẫn chưa tung ra bản sửa lỗi tại thời điểm báo cáo nghiên cứu này, khiến người dùng của họ gặp rủi ro.

Ai được lợi, ai chịu thiệt

  • Kẻ tấn công có được một lộ trình leo thang đặc quyền trực tiếp mà không cần khai thác các lỗi nhân (kernel) hay mã zero-day.
  • Các nhà phát triển và tổ chức vốn dựa vào các trợ lý này cho công việc hàng ngày phải đối mặt với rủi ro bị đánh cắp thông tin xác thực âm thầm, chèn mã độc hoặc triển khai mã độc tống tiền (ransomware).
  • Các nhà cung cấp công cụ có nguy cơ bị tổn hại danh tiếng và có thể phải chịu trách nhiệm pháp lý nếu lỗ hổng không được vá kịp thời.

Chi phí của một vụ vi phạm có thể rất cao: các khóa SSH, mã thông báo đám mây (cloud tokens) và thông tin xác thực Git bị xâm phạm có thể mở đường cho việc xâm nhập mạng rộng hơn. Thậm chí chỉ một máy trạm bị xâm phạm cũng có thể trở thành bàn đạp để di chuyển ngang (lateral movement) bên trong môi trường doanh nghiệp.

Các bước giảm thiểu bạn có thể thực hiện ngay hôm nay

Cho đến khi các nhà cung cấp phát hành bản vá, quản trị viên có thể thắt chặt bảo mật cho chính các thư mục đó. Các lệnh PowerShell sau đây, khi được chạy với quyền nâng cao, sẽ tạo các thư mục dự kiến (nếu chúng chưa tồn tại) và khóa chúng lại để chỉ hệ thống và quản trị viên mới có quyền ghi:

# Create the directories
$paths = @(
    "C:\ProgramData\ClaudeCode",
    "C:\ProgramData\Cursor",
    "C:\ProgramData\openai\codex",
    "C:\ProgramData\gemini-cli"
)
foreach ($p in $paths) { New-Item -ItemType Directory -Path $p -Force }

# Remove inherited permissions and grant only the needed accounts
foreach ($p in $paths) {
    icacls $p /inheritance:r
    icacls $p /grant "SYSTEM:(OI)(CI)F" "Administrators:(OI)(CI)F" "Users:(OI)(CI)RX"
}

Sau khi áp dụng các ACL (danh sách kiểm soát truy cập), hãy quét các thư mục để tìm bất kỳ tệp nào thuộc sở hữu của người dùng tiêu chuẩn. Tìm thấy một tệp như vậy là dấu hiệu mạnh mẽ cho thấy máy tính đã bị xâm phạm; trong trường hợp đó, hãy thay đổi tất cả các khóa riêng tư, mã thông báo truy cập đám mây và thông tin xác thực quản lý phiên bản ngay lập tức.

Những điều cần lưu ý

  • Bản vá từ nhà cung cấp – Hãy theo dõi các ghi chú phát hành từ các nhà cung cấp bị ảnh hưởng. Việc chuyển sang một vị trí được bảo vệ hoặc thực hiện kiểm tra tính toàn vẹn cho các tệp cấu hình sẽ vô hiệu hóa vấn đề này.
  • Cập nhật công cụ bảo mật – Các nền tảng phát hiện điểm cuối (endpoint detection) có thể thêm các chữ ký cho mẫu tạo tệp cụ thể này trong C:\ProgramData. Việc triển khai các bản cập nhật đó có thể cung cấp các cảnh báo sớm.
  • Các công bố từ cộng đồng – Các nhà nghiên cứu bảo mật có thể công bố các bản khai thác thử nghiệm (proof-of-concept) hoặc các tập lệnh phát hiện để có thể tích hợp vào hệ thống giám sát nội bộ.

Lập luận phản bác

Một số người có thể lập luận rằng rủi ro chỉ giới hạn ở những máy tính có nhiều tài khoản người dùng, hoặc các công cụ này hiếm khi được chạy với quyền quản trị viên. Mặc dù những yếu tố đó làm giảm bề mặt tấn công, nhưng chúng không loại bỏ hoàn toàn rủi ro này. Nhiều máy tính xách tay của doanh nghiệp được quản lý tập trung và thường cấp quyền admin cho các nhà phát triển để cài đặt trình biên dịch hoặc SDK. Hơn nữa, mã độc có thể khai thác chính thư mục đó để duy trì sự hiện diện trên hệ thống ngay cả khi không cần kích hoạt ở cấp độ admin, chỉ đơn thuần sử dụng trợ lý AI như một vector thực thi thuận tiện.

Bài học rút ra

CVE-2026-35603 cho thấy một quyết định thiết kế có vẻ vô hại—đọc cấu hình từ một thư mục mà bất kỳ ai cũng có quyền ghi—có thể trở thành một con đường leo thang đặc quyền mạnh mẽ khi có sự tham gia của các công cụ AI. Cho đến khi các nhà cung cấp khắc phục lỗ hổng này, biện pháp phòng thủ đáng tin cậy duy nhất là khóa các thư mục con trong C:\ProgramData được các trợ lý này sử dụng và coi bất kỳ tệp không mong muốn nào tại đó là dấu hiệu của việc hệ thống đã bị xâm nhập. Việc phớt lờ vấn đề này sẽ tạo ra một con đường trực tiếp cho các tài khoản có đặc quyền thấp chiếm quyền kiểm soát hoàn toàn một máy trạm Windows.