Phát hiện backdoor trong tiện ích chính thức Claude Code cho VS Code trên Cursor Marketplace

Phần mềm30 tháng 10, 2026·6 phút đọc

Công ty bảo mật Phorion đã phát hiện gói tiện ích mở rộng chính thức Claude Code cho VS Code phiên bản 2.1.313 trên Cursor Marketplace bị chèn mã độc, cài đặt cửa hậu SSH liên tục trên macOS, Linux và Windows. Cursor đã gỡ bỏ phiên bản này khỏi marketplace và các registry liên quan, song giới phát triển được khuyến cáo kiểm tra ngay môi trường của mình.

Phát hiện backdoor trong tiện ích chính thức Claude Code cho VS Code trên Cursor Marketplace

Một sự cố an ninh mạng nghiêm trọng vừa được công bố, liên quan trực tiếp đến cộng đồng lập trình viên sử dụng các trợ lý AI trong môi trường phát triển phần mềm. Công ty bảo mật Phorion cho biết đã phát hiện gói tiện ích chính thức Claude Code cho VS Code trên Cursor Marketplace bị chèn mã độc, tạo ra một cửa hậu SSH (SSH backdoor) tồn tại lâu dài trên máy nạn nhân.

Sự việc đặc biệt đáng lo ngại bởi đây không phải một tiện ích lạ mà là tiện ích chính thức của Anthropic, được hàng nghìn lập trình viên tin dùng để tích hợp trợ lý AI Claude vào quy trình viết mã.

Bản chất của cuộc tấn công chuỗi cung ứng

Theo phân tích của Phorion, tệp extension.js bị xâm nhập bắt đầu bằng một biểu thức hàm thực thi ngay (IIFE) được chèn vào trước gói tiện ích đã được rút gọn (minified). Phần còn lại của gói trông giống hệt tiện ích gốc, với các chuỗi Claude Code, VS Code, hàm activate và deactivate thông thường cùng mã giao diện.

Điểm nguy hiểm là đoạn mã độc chạy ngay khi Node.js nạp tệp, trước cả khi hàm activate của tiện ích được gọi. Người dùng không cần mở hay tương tác với tiện ích thì payload vẫn kích hoạt. Do tiện ích mở rộng chạy với quyền của IDE và người dùng đang đăng nhập, mã độc có quyền truy cập tức thì vào tệp cục bộ, mã nguồn và toàn bộ công cụ phát triển.

Đây là một cuộc tấn công chuỗi cung ứng phần mềm điển hình: kẻ tấn công không cần lừa người dùng cài phần mềm lạ, mà lợi dụng chính uy tín của một gói phổ biến.

Bốn giai đoạn của mã độc

Quy trình xâm nhập được chia thành bốn giai đoạn rõ rệt:

  • Giai đoạn 1 – Chuẩn bị truy cập SSH: Mã độc tạo thư mục ~/.ssh, chèn một khóa công khai Ed25519 do kẻ tấn công kiểm soát vào ~/.ssh/authorized_keys với chú thích svc-telemetry, rồi đặt quyền 0700 cho thư mục và 0600 cho tệp.
  • Giai đoạn 2 – Thiết lập đường hầm SSH ngược: Kịch bản mở kết nối SSH ra ngoài tới 134.209.82[.]225 với người dùng tunnel, sử dụng khóa riêng Ed25519 nhúng sẵn (chú thích svc-telemetry-tun). Đường hầm dùng cờ -R *:0:localhost:22 để chuyển tiếp cổng động, cho phép kẻ tấn công quay lại xâm nhập vào cổng 22 cục bộ.
  • Giai đoạn 3 – Duy trì quyền truy cập: Trên macOS, mã độc tạo LaunchAgent giả danh com.apple.sysmond.plist trong ~/Library/LaunchAgents/; trên Linux là mục @reboot trong crontab; trên Windows là tác vụ lên lịch tên SysMon hoặc tệp trong thư mục Startup.
  • Giai đoạn 4 – Trinh sát máy chủ: Kịch bản thu thập tên máy, người dùng, hệ điều hành, kiến trúc, email Git toàn cục, địa chỉ IP công khai và tên của tối đa 40 biến môi trường khớp mẫu KEY|TOKEN|SECRET|PASS|AWS|GCP, sau đó gửi báo cáo qua HTTP POST tới /beacon.

Đáng chú ý, mã độc chỉ gửi tên biến môi trường chứ không gửi giá trị, nên không đánh cắp trực tiếp bí mật. Tuy nhiên, danh sách này giúp kẻ tấn công biết máy nào đang lưu thông tin xác thực đám mây để ưu tiên tấn công tiếp.

Lỗi triển khai giúp giảm thiểu tác động trên macOS

Phorion phát hiện một sơ suất của chính kẻ tấn công trong logic bật SSH trên macOS. Kịch bản giả định có thể kiểm tra trạng thái Remote Login mà không cần quyền root. Nhưng khi chạy dưới người dùng thông thường, lệnh systemsetup -getremotelogin in ra thông báo lỗi thiếu quyền quản trị và thoát với mã trạng thái 0, thay vì trả về Off.

Vì mã chỉ bật SSH khi đầu ra khớp với Off, bước bật SSH bị bỏ qua hoàn toàn. Hệ quả là trên máy Mac chưa bật SSH từ trước, đường truy cập vào bị cắt đứt, dù khóa SSH và cơ chế duy trì vẫn được cài đặt.

Tuy nhiên, chuyên gia bảo mật khuyến cáo không nên dựa vào lỗi này như một biện pháp phòng vệ. Nếu người dùng đã bật Remote Login trước đó, hoặc bật sau này, cửa hậu sẽ sẵn sàng hoạt động.

Khuyến nghị xử lý cho lập trình viên và tổ chức

Phorion nhấn mạnh rằng chỉ gỡ cài đặt tiện ích là không đủ để loại bỏ cửa hậu. Các bước ứng phó cần thiết bao gồm:

  • Dừng các tiến trình đường hầm đang hoạt động, gồm vòng lặp /bin/sh và mọi tiến trình ssh hoặc autossh kết nối tới 134.209.82[.]225.
  • Gỡ bỏ cơ chế duy trì: xóa ~/Library/LaunchAgents/com.apple.sysmond.plist trên macOS (hoặc mục crontab trên Linux, tác vụ SysMon trên Windows), cùng các tệp ~/.config/.smt và ~/.config/.smtk.
  • Xóa khóa công khai svc-telemetry khỏi ~/.ssh/authorized_keys, xóa các tệp /tmp/.stk_* và kiểm tra xem Remote Login có bị bật ngoài ý muốn hay không.
  • Xoay vòng toàn bộ thông tin xác thực nếu SSH từng được bật hoặc có dấu hiệu đăng nhập từ bên ngoài, đặc biệt là các token khớp mẫu biến môi trường mà mã độc tìm kiếm.

Trong nhật ký SSH, các phiên đăng nhập trái phép sẽ xuất hiện như đến từ localhost (127.0.0.1 hoặc ::1) với khóa svc-telemetry, do chúng đi qua cổng chuyển tiếp cục bộ.

Bài học cho cộng đồng phát triển tại Việt Nam

Với các đội ngũ kỹ thuật tại Việt Nam đang ngày càng tích hợp trợ lý AI vào quy trình phát triển, sự cố này là lời cảnh báo thiết thực. Các tiện ích mở rộng IDE chạy với quyền rất cao nhưng thường được cài đặt thiếu kiểm soát. Doanh nghiệp nên:

  • Giới hạn danh sách tiện ích được phép cài đặt và kiểm tra phiên bản cụ thể đang dùng.
  • Giám sát các tiến trình IDE ghi vào ~/.ssh/authorized_keys – hành vi mà một tiện ích hợp pháp không bao giờ cần thực hiện.
  • Áp dụng nguyên tắc đặc quyền tối thiểu, không chạy IDE bằng tài khoản có quyền quản trị.

Cursor đã gỡ bỏ bản phát hành 2.1.313 khỏi marketplace và thu hồi các phiên bản tương ứng trên NPM và VSCode. Bất kỳ ai từng cài đặt phiên bản này cần coi máy của mình là đã bị xâm nhập cho đến khi hoàn tất kiểm tra.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗