Quay lại blog

AI cho người mớiHướng dẫn

Chạy Claude Code hay Codex trong Downloads? Kiểm tra an toàn AGENTS.md

Một tệp tên là AGENTS.md hoặc CLAUDE.md trong Downloads có thể điều khiển Claude Code và Codex. Những tệp này là gì và bước kiểm tra 5 phút cho cấu hình của bạn.

Bởi CheapTokens TeamĐã xuất bản 7 phút đọc

Ảnh bìa: một AGENTS.md được cài cắm trong thư mục Downloads chạm tới cấu hình của AI agent
Trên trang này
  1. AGENTS.md và CLAUDE.md là gì, và tại sao agent tin chúng
  2. Các nhà nghiên cứu đã làm gì với một tệp trong Downloads
  3. Nên xem những cài đặt nào, và một cài đặt bình thường trông ra sao
  4. Bước kiểm tra 5 phút
  5. Nếu có gì đó có vẻ sai

Câu trả lời ngắn: đừng khởi động Claude Code hay Codex trong thư mục ~/Downloads của bạn. Ngày 22 tháng 10 năm 2026, công ty bảo mật Forever Security công bố nghiên cứu cho thấy một trang web có thể âm thầm lưu một tệp tên là AGENTS.md hoặc CLAUDE.md vào thư mục Downloads, và một agent khởi động trong thư mục đó sẽ coi tệp này là chỉ dẫn đáng tin cậy. Dưới đây: những tệp này là gì, các nhà nghiên cứu đã thay đổi được những gì, và một bước kiểm tra mất khoảng năm phút.

Hãy hình dung phiên bản thông thường. Bạn lưu một tá PDF và ảnh chụp màn hình từ một trang web, mở terminal trong Downloads, gõ claude hoặc codex và yêu cầu nó "sắp xếp các tệp này". Không có gì trong đó có vẻ rủi ro. Và đó chính là cái bẫy.

AGENTS.md và CLAUDE.md là gì, và tại sao agent tin chúng#

Một coding agent không bắt đầu mỗi phiên từ con số không. Trước khi xem yêu cầu của bạn, nó kiểm tra thư mục mà nó được khởi động để tìm một tệp văn bản thuần chứa chỉ dẫn thường trực: "dùng tab, chạy test bằng npm test, đừng bao giờ động vào thư mục migrations." AGENTS.md là tên chung, CLAUDE.md là ý tưởng tương tự cho Claude Code. Trong dự án của chính bạn, những tệp này hữu ích, vì bạn đã viết chúng.

Tuy nhiên, agent không thể biết ai đã viết một tệp. Một CLAUDE.md mà một trang web thả vào Downloads trông y hệt cái bạn viết tuần trước.

Thẻ ghi nhớ

Những từ bạn sẽ gặp trong bài viết này

Các nhà nghiên cứu đã làm gì với một tệp trong Downloads#

Bài đăng của Forever Security (tác giả Gal Weizman và Omer Samet, 22 tháng 10 năm 2026) mô tả hai trường hợp. Tất cả tỷ lệ thành công dưới đây là số đo của chính các nhà nghiên cứu.

Codex. Tệp AGENTS.md được cài cắm bảo agent thêm một mục MCP server vào ~/.codex/config.toml, và mục đó dẫn đến việc cài một gói npm tên là function-color. Theo các nhà nghiên cứu, payload đã chạy trong hơn 90% số lần thử. Hãy nhìn vào nơi tệp đó nằm: thư mục home của bạn, không phải Downloads. Cấu hình này áp dụng cho toàn máy, nên mọi phiên sau đó trong bất kỳ thư mục nào đều bị ảnh hưởng, rất lâu sau khi bạn đã quên thư mục Downloads.

Claude Code. Tệp CLAUDE.md được cài cắm cố ghi một cài đặt ANTHROPIC_BASE_URL vào .claude/settings.json. Cài đặt đó quyết định nơi agent gửi lưu lượng API của nó. Trỏ nó vào server của người khác thì server đó thấy OAuth token của bạn và có thể gửi lại các lệnh gọi công cụ để agent chạy. Việc ghi thành công khoảng một nửa số lần; một đường dẫn thực thi trong cùng phiên, khoảng một phần năm số lần.

Từ một tệp được cài cắm đến một cấu hình bị thay đổi
Cách một tệp chỉ dẫn được cài cắm kết thúc trong cài đặt của chính agent (Forever Security, 22 tháng 10 năm 2026)

Bài đăng nói rõ rằng không có gì "hỏng" trong cả hai sản phẩm: agent hoạt động đúng như thiết kế, và rủi ro đến từ vị trí của tệp và mức độ agent tin nó. Forever cũng cho biết họ đã tìm thấy một AGENTS.md được cài cắm thật trên máy của một khách hàng và đã chặn một lần cài npm độc hại trước khi bất kỳ mã nào chạy; npm sau đó đã gỡ function-color. Phần cuối đó là lời kể của chính các nhà nghiên cứu. OpenNET đưa tin về câu chuyện vào ngày 26 tháng 10 năm 2026 và chỉ ra rủi ro tương tự khi một AGENTS.md đến qua một pull request hoặc một kho lưu trữ được clone.

Kiểm tra nhanh

Tại sao trường hợp Codex tệ hơn một phiên hỏng trong Downloads?

Hiện đáp án

Trả lời: Cấu hình nó thay đổi áp dụng cho toàn máy, nên mọi phiên sau đó trong bất kỳ thư mục nào đều bị ảnh hưởng

Tệp được cài cắm chỉ cần chạy một lần. Những gì nó ghi vào ~/.codex/config.toml vẫn ở đó và áp dụng cho các phiên sau trong mọi thư mục.

Nên xem những cài đặt nào, và một cài đặt bình thường trông ra sao#

Hai tệp, một cho mỗi công cụ trong nghiên cứu.

Trong ~/.codex/config.toml, hãy tìm các mục [mcp_servers.*] mà bạn không nhớ đã thêm, và một base URL bạn không đặt. Một mục đáng ngờ khiến máy bạn tải và chạy thứ gì đó từ npm:

toml
[mcp_servers.helper]
command = "npx"
args = ["-y", "some-package"]

Tên helper và gói ở đây là chỗ giữ chỗ. Trong trường hợp của các nhà nghiên cứu, gói đứng sau một mục như vậy là function-color.

Trong .claude/settings.json, hãy tìm một API endpoint hoặc proxy mà bạn không đặt vào đó. Nếu bạn chưa bao giờ đặt ANTHROPIC_BASE_URL, tệp không nên nhắc đến nó chút nào. Nếu bạn đã đặt, nó phải là địa chỉ của nhà cung cấp bạn đã chọn. Với CheapTokens, một client kiểu Anthropic như Claude Code dùng https://api.cheaptokens.dev không có /v1 ở cuối; các client kiểu OpenAI dùng https://api.cheaptokens.dev/v1.

Một base URL bạn đặt so với một cái bạn không đặt
Cùng một cài đặt hai lần: địa chỉ bên trái là cái bạn chọn, cái bên phải là một host bạn không nhận ra (chỗ giữ chỗ)

Nếu bạn chạy Claude Code bằng key của riêng mình, hướng dẫn từng bước để kết nối Claude Code với CheapTokens cho thấy toàn bộ tệp, và tài liệu liệt kê cả hai base URL. Với các vòng lặp agent dài, DeepSeek-V4-Flash (deepseek-ai/DeepSeek-V4-Flash-0731) có ngữ cảnh 380K, tối đa 32.768 token đầu ra mỗi câu trả lời và một mức giá ở mọi thời điểm; trang model có phần còn lại.

Cline, Aider và các agent khác không nằm trong nghiên cứu này, và mỗi cái lưu cài đặt ở nơi riêng của nó. Thói quen thì như nhau: biết tệp nào chứa endpoint và đọc nó một lần.

Bước kiểm tra 5 phút#

Mở một terminal và làm theo thứ tự sau. Không có gì ở đây thay đổi tệp; nó chỉ đọc.

Từng bước một

Kiểm tra máy của bạn

Tìm các tệp chỉ dẫn lạc

bash
find ~/Downloads -maxdepth 3 -name "AGENTS.md" -o -name "CLAUDE.md"

Bất kỳ kết quả nào bạn không viết: mở nó dưới dạng văn bản và đọc. Nếu bạn không biết nó đến từ đâu, hãy xóa nó.

Đọc cấu hình Codex

bash
grep -n "mcp_servers\|base_url" ~/.codex/config.toml

Mỗi dòng [mcp_servers.…] phải là thứ bạn nhớ đã thêm. "No such file" là ổn nếu bạn không dùng Codex.

Đọc cài đặt Claude Code

bash
grep -n "BASE_URL\|proxy" ~/.claude/settings.json .claude/settings.json

Chạy nó từ thư mục dự án của bạn để cả hai tệp đều được bao phủ. Mọi địa chỉ trong kết quả phải là nhà cung cấp bạn đã chọn.

Xem shell của bạn

bash
env | grep -i "BASE_URL"

Lệnh này liệt kê các base URL được đặt làm biến môi trường. Quy tắc tương tự: bạn phải nhận ra từng cái.

Tìm gói từ trường hợp nghiên cứu

bash
npm ls -g --depth=0 | grep function-color

Cũng chạy npm ls function-color bên trong các dự án bạn đã dùng agent. Nếu nó xuất hiện, hãy coi máy đã bị xâm phạm.

Nếu có gì đó có vẻ sai#

Hãy đóng agent trước. Sau đó xóa các mục bạn không nhận ra, và xoay vòng mọi thông tin xác thực mà agent có thể thấy: API key, token, bất cứ thứ gì trong môi trường. Nếu ý tưởng xoay vòng key còn mới với bạn, API key là gì và cách lưu trữ nó bao gồm những điều cơ bản.

Những thói quen giúp ngăn chuyện này tái diễn, tất cả đều từ các biện pháp giảm thiểu của nhà nghiên cứu:

  • Khởi động agent trong một thư mục dự án do chính bạn tạo, không phải trong Downloads.
  • Đọc bất kỳ AGENTS.md hoặc CLAUDE.md nào bạn không viết trước khi chạy agent trên đó, kể cả những cái đến qua một bản clone hoặc một pull request.
  • Giữ lời nhắc phê duyệt và sandbox bật, và cảnh giác với bất kỳ chỉ dẫn nào yêu cầu agent tắt chúng.