File 'Don't Ask Again' của Claude Code làm lộ mật khẩu và khóa trong 1.122 bản công khai trên GitHub
Các mật khẩu và API key mà lập trình viên gõ vào lệnh được phê duyệt trong Claude Code đang nằm trong các kho GitHub công khai, nơi bất kỳ ai cũng đọc được. Khi người dùng chọn "Yes, and don't ask again", trợ lý lập trình AI của Anthropic có thể lưu nguyên văn lệnh, kể cả bí mật bên trong, vào file cấu hình của dự án.
Công ty bảo mật phần mềm Apiiro cho biết đã tìm thấy 1.122 bản công khai của file này chứa ít nhất một bí mật, dù chưa kiểm tra xem chúng còn hiệu lực hay không. Một công ty được nhóm nghiên cứu thông báo trước đó xác nhận khóa của mình vẫn đang hoạt động.
Cơ chế rò rỉ
File liên quan là .claude/settings.local.json. Xóa file khỏi dự án không khắc phục được rò rỉ, vì các phiên bản cũ vẫn tồn tại trong lịch sử git và trong các bản fork. Lời khuyên của nhóm nghiên cứu là xoay vòng bí mật trước: đổi mọi mật khẩu, token và khóa mà file từng chứa, rồi mới dọn dẹp.
Mặc định Claude Code hỏi trước khi chạy hầu hết lệnh shell. Nếu người dùng chọn không hỏi lại, công cụ lưu một quy tắc cho phép vào file trên. Quy tắc chỉ bao phủ đúng nội dung mà lời nhắc đưa ra: có khi là một mẫu như npm test *, có khi là một lệnh chính xác. Với lệnh chính xác, mọi mật khẩu hay token gõ vào đều được lưu dưới dạng văn bản thuần.
Nhóm nghiên cứu đã tái hiện hành vi này trên các mô hình mới nhất là Opus 5.5 và Fable 5.1. Claude Code có cố gắng giữ file ngoài git bằng cách thêm nó vào danh sách loại trừ toàn cục của người dùng lần đầu ghi file trong một kho git. Tuy nhiên biện pháp này chỉ có tác dụng trên một máy tính, không giúp gì với file đã được commit, và công cụ không bao giờ thêm file vào .gitignore của chính dự án. Trong 539 trên 1.105 kho được truy vết, một commit ghi Claude là đồng tác giả đã thay đổi file, hàm ý Claude thường tự commit file này.
Những gì Apiiro phát hiện
Tìm kiếm trên GitHub công khai cho thấy 104.185 bản của file trong 103.617 kho, khoảng 1,1% tức 1.122 bản chứa ít nhất một bí mật, tổng cộng 1.379 bí mật khác nhau. Hơn một phần ba số bí mật mở trực tiếp cơ sở dữ liệu, gồm 379 mật khẩu database. Số khác gồm 43 thông tin đăng nhập SSH cho máy chủ công khai, 42 token GitHub, GitLab và npm, cùng 23 khóa AWS.
Chủ sở hữu các file này gồm 63 tổ chức, phần lớn là công ty phần mềm đủ quy mô. Tính đến thứ Hai, mọi file chứa bí mật vẫn nằm trên nhánh mặc định của kho, và một nửa trong số đó đã ở đó ít nhất 217 ngày. Các phiên bản cũ chứa thêm 734 bí mật tại 509 kho, thường do file đã bị xóa; 211 bản fork của 74 kho mang cùng bí mật như bản gốc.
Bí mật còn nằm trong 298 trên 76.011 bản của file chia sẻ .claude/settings.json mà các nhóm cố ý commit. Tính cả các phiên bản cũ và nhật ký trò chuyện của agent, tổng cộng là 2.539 bí mật tại 1.994 kho. Trong 16 agent lập trình được so sánh tài liệu, Claude Code là công cụ duy nhất được xác nhận lưu toàn bộ lệnh đã phê duyệt vào file dự án theo mặc định.
Khuyến nghị xử lý
Với lập trình viên, nhóm nghiên cứu khuyến nghị:
- Tìm .claude/settings.local.json và .claude/settings.json trong tổ chức GitHub, kiểm tra cả lịch sử git của từng kho dù file đã biến mất.
- Xoay vòng mọi mật khẩu, token và khóa mà file từng chứa trước khi dọn dẹp.
- Bỏ theo dõi file cục bộ bằng git rm --cached .claude/settings.local.json và thêm nó vào .gitignore của kho.
- Mở file trên máy, kể cả khi chưa từng commit, và xóa mọi quy tắc chứa bí mật.
- Giữ bí mật ngoài lệnh, tham chiếu qua biến từ trình quản lý bí mật như $DB_URL để quy tắc đã lưu chỉ chứa tên biến.
- Phê duyệt theo mẫu như Bash(npm run:*) thay vì từng lệnh cụ thể.
Theo nhóm nghiên cứu, các bản sao không lên GitHub vẫn đáng lo: file là JSON thuần trong thư mục dự án và có thể nằm trong gói npm, image Docker, file zip hoặc thư mục đồng bộ. Các công cụ quét bí mật phổ biến bỏ sót nhiều file: gitleaks đánh dấu 564 và TruffleHog 643 trong số 1.122 file, cả hai cùng bỏ sót 215 file, chủ yếu là mật khẩu gõ trong lệnh trông như từ thông thường.
Với đội bảo mật, khuyến nghị gồm coi các thư mục agent như .claude/, .cursor/, .gemini/ và .specstory/ là nơi chứa bí mật giống file .env; thêm chúng vào quét bí mật trước commit và trong CI, kể cả lịch sử git; thêm file vào mẫu .gitignore của tổ chức; và kiểm tra trước các thông tin đăng nhập gắn với máy chủ công khai.
Báo cáo trước đó
Người dùng Claude Code từng phản ánh hành vi này. Một báo cáo lỗi ngày 11/8/2025 nêu việc lệnh được phê duyệt chứa API key và token bị lưu nguyên văn trong settings.local.json. Một bot tự động đóng báo cáo với trạng thái "not planned" ngày 3/1 sau 60 ngày không hoạt động. Tính đến nay, cả bốn báo cáo liên quan mà nhóm nghiên cứu dẫn ra đều bị bot này đóng, gần nhất là hôm trước, và không báo cáo nào nhận được phản hồi từ Anthropic.
Nguồn: The Hacker News
Trích nguồn từ: The Hacker News
Bài viết liên quan
Tương lai hậu lượng tử của quyền riêng tư trên web
Cloudflare phân tích thách thức chuyển Privacy Pass sang mật mã hậu lượng tử và tiềm năng của công nghệ MOLE cùng chữ ký mù mới.
Đọc thêm
Lỗ hổng Claude Dispatch: tiện ích trình duyệt độc hại có thể chạy mã trên máy người dùng
Các nhà nghiên cứu Forever Security cho thấy tiện ích trình duyệt chạy script trên claude.ai có thể lợi dụng Claude Dispatch để ra lệnh cho Claude Desktop cài đặt và chạy mã trên máy tính người dùng.
Đọc thêm
Tin tặc khai thác lỗ hổng SSHole của OpenSSH chỉ vài giờ sau khi công bố, chiếm quyền root trên honeypot
Lỗ hổng CVE-2026-123158 trong OpenSSH trên hệ thống dùng musl và tắt PAM bị khai thác chỉ chưa đầy 9 giờ sau khi công bố, cho phép đăng nhập vào tài khoản không có mật khẩu và leo lên quyền root trên honeypot Alpine Linux.
Đọc thêm
CERT-In cảnh báo tấn công do AI dẫn dắt, bản ARTEX cài backdoor mở root cho 62 console
CERT-In ghi nhận nhóm tấn công Crafty Falcon dùng công cụ tấn công do AI hỗ trợ như ARTEX, PentAGI, Cairn, CyberStrikeAI để nhắm vào BFSI, sàn tiền mã hóa; đồng thời bản ARTEX sao chép trên GitHub/Docker Hub chứa backdoor cho phép root từ xa.
Đọc thêm
Lỗ hổng ChatGPT cho phép đánh cắp hội thoại dù bật Lockdown Mode
Check Point phát hiện lỗ hổng trong tính năng xem trước HTML của ChatGPT, cho phép thoát khỏi sandbox và vượt Lockdown Mode để đánh cắp dữ liệu hội thoại mà không cần người dùng tương tác. OpenAI đã vá lỗi vào ngày 18/9/2026.
Đọc thêm
Bản vá Zyxel GS1900 không chặn được zero-day cho phép chạy lệnh root
Bản vá trước đó của Zyxel cho lỗ hổng GS1900 bị khai thác vẫn không ngăn được exploit; hãng phát hành firmware 2.90 Patch 3 để vá lỗ hổng mới CVE-2026-107441.
Đọc thêm
OpenAI tạo 948 bản khai thác leo thang đặc quyền root trên Linux trong 30 giờ
OpenAI công bố pipeline AI phát hiện và tạo bản khai thác cho 948 lỗ hổng leo thang đặc quyền cục bộ trên Linux, với chi phí 1,2 triệu USD API và ít nhất 10 kỹ thuật khai thác mới.
Đọc thêm
OpenSSH phát hành bản vá khẩn cấp cho lỗ hổng cho phép mật khẩu dài vượt qua xác thực SSH trên Alpine Linux
Lỗ hổng nghiêm trọng trong OpenSSH trên Alpine Linux cho phép kẻ tấn công đăng nhập vào tài khoản không có mật khẩu bằng mật khẩu dài 257-1.024 byte; OpenSSH đã phát hành bản vá 10.6p2 và Alpine cập nhật gói cho mọi phiên bản từ 3.16.
Đọc thêm
CISA xác nhận tin tặc khai thác lỗ hổng WordPress Core trong lúc nâng cấp phần mềm
CISA đưa lỗ hổng WordPress Core vào danh mục lỗ hổng bị khai thác thực tế, với bằng chứng tấn công đang diễn ra nhắm vào cửa sổ nâng cấp.
Đọc thêm
Google phát hành bản vá cho lỗ hổng Android nghiêm trọng có thể cho phép RCE từ xa mà không cần người dùng tương tác
Bản tin bảo mật tháng 11 của Google vá 216 lỗ hổng, trong đó 23 lỗi nghiêm trọng, gồm CVE-2026-58868 có thể bị khai thác để chạy mã từ xa trên Android 14 đến 17 mà không cần người dùng thao tác.
Đọc thêm