Backdoor trong extension Claude Code: chuyện gì đã xảy ra và cách kiểm máy
Bản sửa độc hại của extension Claude Code trên marketplace Cursor ngày 29/10/2026: payload làm gì, kiểm máy bằng một lệnh, cách xử lý và bốn thói quen.
✓ Đã duyệt độc lập · cập nhật 02/11/2026 · 9 min
1. Một cái tên quen, một package đã bị sửa
Theo thông báo bảo mật của Cursor và bài phân tích của Phorion (video đăng ngày 01/11/2026), ngày 29/10/2026, trong khoảng 11 giờ, một phiên bản đã bị chỉnh sửa của extension Claude Code có mặt trên extension marketplace của Cursor. Máy nào đã cài nó thì bị cài thêm SSH key của kẻ tấn công, bị dựng một chương trình ẩn để tự chạy lại sau mỗi lần khởi động lại máy, và bị gửi thông tin về máy tới một server. Cũng theo video đăng ngày 01/11/2026, Cursor nói các phiên bản độc hại này không phải do Anthropic phát triển.

Nhóm SimpleTech nói người xem sẽ học ba điều: package đó thực sự đã làm gì, cách kiểm máy của mình bằng một lệnh, và những thói quen giúp bảo vệ mình trước vụ kế tiếp (video đăng ngày 01/11/2026). Để cho thấy vì sao một extension của editor lại có nhiều quyền đến thế, nhóm dùng app mẫu của mình là TaskFlow, một app theo dõi task nhỏ viết bằng React và Express. TaskFlow là một app mẫu do nhóm làm để minh hoạ (video đăng ngày 01/11/2026).
2. Hai nguồn và dòng thời gian
Theo video đăng ngày 01/11/2026, mọi thông tin trong video đến từ hai nguồn đã công bố: thông báo bảo mật của Cursor và một bản advisory kỹ thuật của công ty bảo mật Phorion. Nhóm SimpleTech không tự chạy hay tự phân tích malware.
Dòng thời gian, theo thông báo của Cursor như video đăng ngày 01/11/2026 trình bày: Cursor đăng thông báo ngày 29/10/2026. Thông báo nêu tên package là Anthropic.claude-code, hai phiên bản 2.1.312 và 2.1.313. Với Windows và macOS, Cursor nói các phiên bản bị sửa có mặt trên marketplace từ khoảng 2:27 sáng tới 1:35 chiều giờ Pacific ngày hôm đó.

Theo thông báo của Cursor (video đăng ngày 01/11/2026), Cursor gỡ các phiên bản đó, rồi đóng toàn bộ marketplace để phòng ngừa, kiểm tra lại quyền truy cập, xoay vòng (rotate) các key của mình, dựng lại marketplace và đưa nó hoạt động trở lại. Cursor cũng làm việc với nhà cung cấp hosting để đưa server của kẻ tấn công xuống. Cursor nói không có bằng chứng nào cho thấy các phiên bản khác hay bản phân phối chính thức bị ảnh hưởng.
Ngày hôm sau, Phorion đăng một advisory chi tiết, và sau đó thêm số phiên bản thứ hai khi Cursor cập nhật thông báo của mình (video đăng ngày 01/11/2026; trang của Phorion ghi phiên bản được thêm vào là 2.1.312, đọc ngày 02/11/2026). Khi nhóm SimpleTech kiểm tra vào ngày 01/11/2026, nhóm không tìm thấy một thông báo riêng nào từ Anthropic, nên video chỉ trích Cursor và Phorion.
3. Vì sao một extension làm được nhiều đến vậy
Nhóm SimpleTech đặt một tình huống: bạn đang build TaskFlow trong editor. Project của bạn, các thiết lập git và thư mục SSH đều thuộc về user account của bạn (video đăng ngày 01/11/2026). Phorion nói thẳng điều này: extension chạy với quyền của editor và của user đang chạy nó, nên một extension có backdoor có ngay quyền truy cập vào file trên máy, source code và các công cụ dành cho developer (bài của Phorion, video đăng ngày 01/11/2026).
Để minh hoạ, nhóm tự viết một extension vô hại cho việc giảng dạy tên là TaskFlow Helper. Theo video đăng ngày 01/11/2026, nó không đọc gì và không gửi gì đi. Nó chỉ ghi lại lúc nào code của nó chạy. Dòng code ở đầu file chạy ngay khi editor nạp file. Hàm activate chạy sau đó.

demo-extension/extension.js của TaskFlow Helper, ghi "Our own harmless example • 1 test passed"; bên phải là ô "Your user's permissions" với file, Git config và thư mục SSH (slide trong video đăng ngày 01/11/2026).Bài test của nhóm nạp file đó và kiểm thứ tự chạy, và bài test pass: phần code ở top-level đã chạy trước khi activate được gọi (demo trong video đăng ngày 01/11/2026). Theo video, điều này quan trọng vì Phorion thấy đoạn code độc hại được đặt ở ngay đầu file chính của extension. Nó chạy ngay khi file được nạp, người dùng không cần bấm vào bất cứ thứ gì (video đăng ngày 01/11/2026).
4. Bốn việc payload đã thử
Theo cả hai nguồn (video đăng ngày 01/11/2026), payload đã thử làm bốn việc:
- Thêm public key của kẻ tấn công vào file SSH authorized keys của bạn, với nhãn
svc-telemetry. Ai giữ private key tương ứng đều có thể đăng nhập vào máy dưới tên bạn, nếu SSH đang chạy (theo Cursor và Phorion, video đăng ngày 01/11/2026). - Thử bật dịch vụ SSH của máy (theo Cursor và Phorion, video đăng ngày 01/11/2026).
- Mở một SSH tunnel đi ra ngoài tới server của kẻ tấn công, để kẻ tấn công có thể vào ngược lại máy qua chính kết nối đó. Một vòng lặp retry dựng lại tunnel khoảng mỗi 60 giây (theo Cursor và Phorion, video đăng ngày 01/11/2026).
- Tự làm cho mình tồn tại lâu dài (persistent). Trên macOS, nó tạo một launch agent được đặt tên để trông giống một dịch vụ hệ thống của Apple. Trên Windows, nó thử tạo một scheduled task tên SysMon, và dùng một script trong thư mục Startup làm phương án dự phòng (theo Cursor và Phorion, video đăng ngày 01/11/2026).

~/.ssh/authorized_keys (nhãn svc-telemetry) và mở tunnel tới server của kẻ tấn công (retry khoảng mỗi 60 giây). Dòng chú thích ghi "Described by Cursor and Phorion • we did not run the malware" (slide trong video đăng ngày 01/11/2026).Song song với tất cả những việc đó, theo hai nguồn (video đăng ngày 01/11/2026), payload gửi đi một báo cáo một lần, gồm: hostname, username, hệ điều hành, thư mục home, email git, địa chỉ IP public, và tên của các biến môi trường trông giống secret. Phorion ghi chú rằng nó thu thập tên biến, không lấy giá trị.
5. Mức độ nghiêm trọng: bước nào hỏng, bước nào vẫn chạy
Vậy vụ này tệ đến mức nào? Theo video đăng ngày 01/11/2026, cả hai nguồn đều mô tả một chỗ hỏng trong cuộc tấn công. Bật dịch vụ SSH cần quyền administrator. Cursor nói rằng, ngoài những trường hợp rất bất thường, ví dụ Cursor đang chạy với quyền administrator, bước này sẽ thất bại vì lỗi trong chính đoạn code độc hại.
Phorion tìm ra một trong những lỗi đó trên macOS (theo video đăng ngày 01/11/2026). Script hỏi macOS xem remote login có đang tắt không, nhưng khi không có quyền administrator, macOS trả về một thông báo lỗi thay cho câu trả lời. Script tìm chữ "off", không thấy, và bỏ qua bước bật SSH. Từ đó Cursor kết luận rằng trên những máy như vậy, kẻ tấn công không thể đăng nhập qua tunnel.

Nhưng theo nhóm SimpleTech (video đăng ngày 01/11/2026), đừng đọc điều này thành "an toàn". Cursor nói rõ extension vẫn đã thêm key của kẻ tấn công, vẫn cài persistence và vẫn gửi thông tin về máy. Phorion bổ sung: nếu remote login đã bật sẵn, hoặc được bật lên sau này, thì backdoor đã sẵn sàng. Lời khuyên của Cursor là vẫn làm theo các bước khắc phục dù thế nào đi nữa.
6. Kiểm máy bằng một lệnh
Theo video đăng ngày 01/11/2026, thông báo của Cursor đưa ra một lệnh một dòng cho macOS. Lệnh này tìm chữ svc-telemetry trong file SSH authorized keys của bạn. Nếu nó in ra dòng báo đã tìm thấy key, máy của bạn bị ảnh hưởng. Lệnh Cursor cho macOS, chép từ slide trong video đăng ngày 01/11/2026:
# Cursor's macOS check (from the notice) grep -qs svc-telemetry ~/.ssh/authorized_keys \ && echo "svc-telemetry key found" \ || echo "No key found; machine not impacted"
Cũng theo video đăng ngày 01/11/2026, thông báo của Cursor có một lệnh PowerShell tương ứng cho Windows.
Nhóm SimpleTech cũng viết một checker nhỏ, chỉ đọc (read-only), cho video này. Theo video đăng ngày 01/11/2026, nó tìm các dấu hiệu đã được công bố: hai thư mục extension bị ảnh hưởng, key bị cài vào, các file persistence, và tunnel key còn sót lại trong thư mục tạm. Nó không bao giờ xoá hay tải lên thứ gì.

extension-safety/check.sh gồm lệnh macOS của Cursor, rồi checker read-only của nhóm (python3 check_extension_iocs.py, kết quả "No published indicators found.") và dòng "# tests on fake homes: 3 passed"; dòng chú thích ghi "Teaching aid • remediation: use Cursor's official scripts" (slide trong video đăng ngày 01/11/2026).Nhóm đã test checker trên các thư mục home giả: một thư mục sạch và một thư mục được cài sẵn mọi dấu hiệu, và cả ba bài test đều pass (demo trong video đăng ngày 01/11/2026). Theo nhóm SimpleTech (video đăng ngày 01/11/2026), một kết quả sạch chỉ cho biết các dấu hiệu đã công bố này không có trên máy. Nếu tìm thấy bất cứ thứ gì, hãy dùng các script chính thức của Cursor, không dùng script của nhóm.
7. Nếu key có trên máy
Nếu key có trên máy, Cursor liệt kê các bước (theo video đăng ngày 01/11/2026): cô lập máy; gỡ SSH key của kẻ tấn công, các file persistence và mọi tiến trình tunnel đang chạy; rồi quyết định xem máy có nên được cài lại từ đầu hay không. Cursor cung cấp các script khắc phục cho macOS và Windows làm đúng những việc này, và báo lỗi rõ ràng nếu còn sót lại thứ gì.

Theo video đăng ngày 01/11/2026, có một chi tiết làm người ta bất ngờ: gỡ extension có thể là chưa đủ. Cursor nói payload thả ra các script persistence độc lập và chúng tiếp tục chạy. Phorion cũng nói chỉ gỡ cài đặt thôi sẽ không xoá được backdoor.
Cuối cùng, theo các bước của Cursor (video đăng ngày 01/11/2026), hãy rotate các credential và session mà tài khoản bị ảnh hưởng có thể truy cập, và làm việc đó từ một máy đáng tin cậy.
Video đăng ngày 01/11/2026 nhắc lại: báo cáo kia đã liệt kê tên các biến môi trường chứa secret của bạn. Phorion gọi đó là một bản kiểm kê nhanh xem những credential nào đang nằm trên máy. Cursor ghi chú rằng việc thu thập có giới hạn này không loại trừ khả năng bị truy cập sau đó qua backdoor. Theo nhóm SimpleTech (video đăng ngày 01/11/2026), với laptop của công ty, hãy báo cho đội bảo mật thay vì lặng lẽ tự dọn.
8. Bốn thói quen cho lần sau
Nhóm SimpleTech kết lại bằng bốn điều nên mang theo (video đăng ngày 01/11/2026):
- Một cái tên quen không phải là lời bảo đảm. Extension mang một cái tên đáng tin, nhưng một package đã bị sửa được phân phối qua một marketplace. Hãy kiểm publisher và nơi editor của bạn thực sự tải extension về (theo nhóm SimpleTech, video đăng ngày 01/11/2026).
- Đừng chạy editor với quyền administrator. Chính thông báo của Cursor mô tả quyền administrator là trường hợp bất thường mà ở đó bước bật SSH có thể đã thành công (theo nhóm SimpleTech, video đăng ngày 01/11/2026).
- Giữ các secret dài hạn ra khỏi môi trường shell dùng thường ngày khi có thể, vì payload này đã kiểm kê đúng tên những biến đó (theo nhóm SimpleTech, video đăng ngày 01/11/2026).
- Thỉnh thoảng rà lại các extension đã cài và gỡ những cái bạn không còn dùng. Mọi extension đều là code chạy dưới tên bạn (theo nhóm SimpleTech, video đăng ngày 01/11/2026).

Nguồn và liên kết 6 nguồn
- Tên gốc: The Claude Code Extension Backdoor: What Happened and How to Check
- Sự kiện: YouTube
- Video gốc: https://www.youtube.com/watch?v=iluQpJaeH4g youtube.com
- Kênh YouTube SimpleTech (Shafeequ Ahmed): youtube.com/channel/UCKJf3O0tpeCI5npXto0n-AA youtube.com
- Cursor, "Security notice: malicious version of Anthropic.claude-code (2.1.312 and 2.1.313) identified in the Cursor VS Code Extension Marketplace", đăng ngày 29/10/2026, cập nhật ngày 30/10/2026 (có lệnh kiểm cho macOS và Windows, script khắc phục và danh sách dấu hiệu; đọc ngày 02/11/2026): cursor.com/blog/claude-code-extension-security-notice cursor.com
- Phorion, "Official Claude Code Extension Compromise: Security Advisory", đăng ngày 30/10/2026, cập nhật ngày 31/10/2026 (đọc ngày 02/11/2026): phorion.io/blog/offical-claude-code-vsx-compromise phorion.io