# Fly.io cảnh báo lỗ hổng bảo mật nghiêm trọng trong cơ chế SSH của VSCode

- Nguồn: Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung)
- Thời gian phát hành: 2026-09-24 07:13 (giờ Việt Nam)
- Điểm AI: 55/100
- Link AIHOT.vn: https://aihot.vn/items/85da5dae3aa71d89
- Nguồn dữ liệu AI HOT: https://aihot.news/items/cmuesok8e0hozroyn9d9tkxru
- Link gốc: https://fly.io/blog/vscode-ssh-wtf

## Tóm tắt AI

Fly.io chỉ trích cách VSCode triển khai SSH khi tự động cài đặt agent Node.js và mở kết nối WebSocket ngược về máy chủ, tạo ra rủi ro bảo mật tiềm ẩn khi cho phép truy cập hệ thống tệp và thực thi lệnh từ xa.

## Thân bài

![VSCode’s SSH Agent Is Bananas](https://fly.io/static/images/fly-social-square.webp)

Tác giả

![Thomas Ptacek](https://fly.io/static/images/thomas.webp)

Tên Thomas Ptacek @tqbf [@tqbf](https://twitter.com/tqbf)

Chúng tôi muốn tích hợp vào quy trình mà VSCode sử dụng để chỉnh sửa từ xa qua SSH, bởi vì hiện nay ai cũng dùng VSCode, và cụ thể hơn, họ đang sử dụng các bản fork của VSCode có khả năng tạo mã bằng LLM.

"Ảo giác" (hallucination) là cách chúng ta gọi khi LLM tạo ra mã sai; còn "kỹ thuật" (engineering) là cách chúng ta gọi khi con người làm điều đó.

Mã do LLM tạo ra [hữu ích trong trường hợp chung](https://nicholas.carlini.com/writing/2024/how-i-use-ai.html) nếu bạn biết mình đang làm gì. Nhưng nó sẽ cực kỳ hữu ích nếu bạn có thể khép kín vòng lặp giữa LLM và môi trường thực thi (với thiết lập "Agent"). Có rất nhiều điều để nói về vấn đề này, nhưng tạm thời: đó là một liều thuốc giải bán hiệu quả cho tình trạng ảo giác: LLM tạo mã, khung agent chạy mã đó, mã tạo ra lỗi, agent phản hồi lỗi đó lại cho LLM, và quá trình cứ thế lặp lại.

Vì vậy, rõ ràng là bạn không muốn quá trình phát triển lặp đi lặp lại này diễn ra trên máy tính xách tay của mình, bởi vì LLM có các vấn đề về ranh giới, và chúng sẽ lặp lại trên cấu hình hệ thống của bạn cũng thoải mái như trên dự án Git mà bạn đang làm việc vậy. Một điều bạn thực sự muốn làm là: chạy một cấu hình agent khép kín (liệu "agentic" có phải là từ chúng ta dùng bây giờ không?) cho LLM, trên một phiên bản Linux sạch sẽ, khởi động tức thì và không thể gây hại cho bạn theo bất kỳ cách nào. Bạn hiểu ý chúng tôi rồi đấy.

Dù sao thì! Tôi muốn nêu lên một mối quan ngại.

Emacs là nơi lưu trữ tiền thân tinh thần của các hệ thống chỉnh sửa từ xa, một khối Elisp cực kỳ hữu ích có tên là ["Tramp"](https://www.gnu.org/software/tramp/). Nếu bạn có thể kết nối Tramp với bất kỳ loại môi trường tương tác nào — thường là phiên SSH — nơi nó có thể chạy các lệnh Bourne shell, nó có thể mở rộng Emacs đến môi trường đó.

VSCode cũng có một tính năng giống như Tramp. Thú vị đúng không? Bạn có thể nghĩ rằng, chỉ cần lấy Tramp, đơn giản hóa nó một chút, thay Elisp bằng Typescript là xong.

Bạn đã nghĩ sai rồi!

Không giống như Tramp, vốn tận dụng những gì có sẵn trên kết nối từ xa, VSCode thực hiện một cuộc "xâm lược" toàn diện: nó chạy một đoạn mã Bash stager để tải xuống một agent, bao gồm cả bản cài đặt nhị phân của Node.

Tôi nghĩ đây là [mã nguồn](https://github.com/microsoft/vscode/tree/c9e7e1b72f80b12ffc00e06153afcfedba9ec31f/src/vs/server/node)?

Agent chạy qua SSH được chuyển tiếp cổng. Nó thiết lập một kết nối WebSockets ngược lại với giao diện VSCode đang chạy của bạn. Giao thức cơ bản trên kết nối đó có thể:

- Đi lang thang khắp hệ thống tệp
- Chỉnh sửa các tệp tùy ý
- Khởi chạy các tiến trình shell PTY của riêng nó
- Tự duy trì sự tồn tại

Trong giới bảo mật, có một cái tên dành cho các công cụ hoạt động theo cách này. Tôi sẽ không nói ra vì điều đó không công bằng với VSCode, nhưng hãy cứ nói rằng cái tên đó có bản chất là loài gặm nhấm (murid).

Tôi sẽ cảm thấy hơi lo lắng khi để mọi người sử dụng VSCode-remote-edit trên các máy chủ phát triển, và sẽ vô cùng tức giận nếu điều đó xảy ra trong một sự cố trên môi trường production.

Hóa ra chúng ta không cần phải bận tâm về bất kỳ điều nào trong số này để có được kết nối tùy chỉnh tới Fly Machine hoạt động trong VSCode, vì vậy không có gì trong số này thực sự quan trọng theo cách sâu xa, nhưng: chúng tôi đã quyết định quay lại làm một blog, nên: chúng tôi đã phải tìm hiểu điều này, và bây giờ đến lượt bạn.

Bài tiếp theo ↑ [Phải chăng Semgrep vừa trở nên thú vị hơn nhiều?](https://fly.io/blog/semgrep-but-for-real-now/) Bài trước ↓ [Cụm GPU AI, từ máy tính xách tay của bạn, với Livebook](https://fly.io/blog/ai-gpu-clusters-from-your-laptop-livebook/)
