Các nhà phát triển phát hiện Claude Code ghi email đăng nhập của người dùng vào header User-Agent của các yêu cầu mạng, rồi gửi tới những website bên thứ ba mà nó truy cập. Ngày 5/11, người dùng taylor-edwards đã gửi báo cáo lỗi lên kho GitHub của Claude Code, cho biết mỗi ngày anh nhận được hàng loạt email lừa đảo vì chuyện này và công ty anh sẽ chuyển sang bộ đôi Pi cộng OpenRouter.
Người báo cáo dùng bản 2.1.318 trên macOS. Chỉ trong một ngày, báo cáo này đã nhận gần 90 bình luận và hơn 600 lượt thích.
Email đã lọt ra ngoài như thế nào
Theo lời nhân viên Anthropic và phần bình luận, nguyên nhân là một thay đổi nhìn qua có vẻ vô hại: để mô hình không tự bịa tên tác giả ở các trường như author trong chú thích mã, Claude Code đã đưa email của tài khoản đang đăng nhập vào ngữ cảnh của mô hình.
Khi mô hình tự viết lệnh curl để tải trang web, nó coi email này là địa chỉ liên hệ và nhét vào User-Agent. Một số website thực sự yêu cầu client dạng script để lại email liên hệ trong UA, Wikipedia là một ví dụ; mô hình làm theo thông lệ đó, và kết quả là email của người dùng bị gửi tới bất kỳ trang nào nó ghé qua.
Lydia Hallie của Anthropic phản hồi:
"We're removing the account email address from the context Claude Code gives the model."
(Chúng tôi đang gỡ địa chỉ email tài khoản khỏi ngữ cảnh mà Claude Code cung cấp cho mô hình.)
Bà còn viết "this should not have happened, and we should've caught this behavior earlier." và cho biết thay đổi sẽ có trong bản kế tiếp, dự kiến đầu tuần sau. Tính đến lúc đăng bài, bản này chưa ra mắt và báo cáo lỗi vẫn đang ở trạng thái mở.
Xâu chuỗi lại dòng thời gian
Chuyện này đã kéo dài nhiều tháng. Theo tổng hợp từ phần bình luận và báo chí:
- Tháng 7: trên GitHub đã có người gửi issue số 81138, và người bình luận cho rằng nó mô tả cùng một hành vi;
- Bản 2.1.317: Claude Code tích hợp sẵn một plugin quyền riêng tư tên cc-plugin-privacy, bật mặc định, sẽ hỏi người dùng trước khi chạy lệnh gọi công cụ web hoặc lệnh curl có chứa email;
- 5/11: báo cáo mới xuất hiện, người dùng đã ở bản 2.1.318 mà email vẫn bị gửi đi;
- Sau đó: phía chính thức tuyên bố sẽ gỡ hẳn email khỏi ngữ cảnh.
Từ báo cáo đầu tiên hồi tháng 7 đến tuyên bố chính thức hồi tháng 11 là hơn ba tháng. Bản vá ở giữa chọn cách đặt thêm một chốt chặn ở đầu ra, trong khi vấn đề nằm ở đầu vào: chỉ cần email còn nằm trong ngữ cảnh, mô hình vẫn có thể mang nó ra ngoài bằng cách khác. Báo chí chỉ ra rằng plugin này không kiểm soát được trường hợp Claude tự viết thành script rồi chạy; trong phần bình luận cũng có người dùng nói plugin hoàn toàn không xuất hiện trong menu /plugins, hoặc hiển thị là đã nạp nhưng lệnh có kèm email vẫn chạy được. Những phản hồi này hiện chưa thể kiểm chứng, và phía chính thức cũng chưa lên tiếng về các trường hợp plugin không hoạt động.
Một chi tiết khác là kênh phát hành. Theo báo cáo, kênh stable khi đó vẫn dừng ở bản 2.1.311, tức là chưa có cả chốt hỏi ý kiến này; người dùng bản stable phải tự nâng cấp thủ công mới có plugin.
Hiện giờ có thể làm gì
Cộng đồng đưa ra hai cách tạm thời: dùng hook pre-tool-use để chặn các lệnh vừa chứa email tài khoản vừa có tham số User-Agent; hoặc ghi rõ trong CLAUDE.md rằng email chỉ được xuất hiện trong các yêu cầu tới những tên miền chỉ định. Đã có nhà phát triển đưa cách thứ nhất vào kho cấu hình của mình.
Với người dùng theo nhóm, mức độ ảnh hưởng phụ thuộc vào tài khoản đăng nhập. Ai đăng nhập bằng email công ty thì bị lộ email công việc, và thư lừa đảo sẽ đánh thẳng vào hộp thư doanh nghiệp. Những website nào đã nhận được các UA này, và nhật ký máy chủ được lưu bao lâu, đều nằm trong tay các trang đó; Anthropic không thể thu hồi giúp người dùng.
Nguồn tham khảo: báo cáo vấn đề trên GitHub của Claude Code, CocoLoop, AI Chat Daily, Trending Topics; số phiên bản bị ảnh hưởng và mô tả plugin quyền riêng tư được đối chiếu với báo cáo vấn đề, còn phát biểu của nhân viên Anthropic lấy theo phản hồi công khai của họ.