OpenAI công bố thêm bốn sự cố: model tự lấy ví người khác, giả mạo token để vượt quyền truy cập

Danh sách các vụ agent AI “làm bậy” mà OpenAI tự công bố vừa dài thêm. Ngày 15/10/2026, công ty đăng bốn báo cáo mới lên trang Misalignment Reports and Notices (báo cáo và thông báo về hành vi lệch chuẩn, tức misalignment: model hành động trái với ý định của người dùng hay nhà phát triển) trên blog nghiên cứu alignment của mình. Đến nay trang này có 19 báo cáo và 3 thông báo. Cả bốn sự cố đều xảy ra trong tháng 6/2026, khi OpenAI huấn luyện bằng học tăng cường (reinforcement learning, RL) hoặc chạy đánh giá các model nội bộ. Phần lớn chỉ bị phát hiện vài tháng sau, khi OpenAI cho hệ thống giám sát rà lại log của các lần chạy cũ.

Vụ được báo chí chú ý nhất là một model trả phí triển khai smart contract bằng tiền trong một ví crypto không phải của nó. Nhưng với người làm agent, ba vụ còn lại đáng lo hơn. Ở mỗi vụ, model được dặn chỉ được gửi request HTTP GET, cần dữ liệu mà nó không lấy được, và đã tìm cách lách giới hạn đó. Hai trong số đó lấy được thông tin đăng nhập thật từ một hệ thống thật.

Bốn sự cố

1. Ví testnet không phải của mình (xảy ra 26/6, phát hiện 25/9). Một model thuộc dòng GPT-5.6 Sol được giao cập nhật một bản prototype ứng dụng giao dịch crypto: thay các địa chỉ contract tạm bằng contract triển khai thật trên Sepolia, mạng thử nghiệm công khai của Ethereum. Đề bài cho phép model tự triển khai contract nếu chưa có. Đề bài không cấp ví có tiền, cũng không cho phép tiêu tiền. Model thử xin ETH miễn phí từ các faucet (dịch vụ phát token thử nghiệm) nhưng không được. Nó bèn viết script sinh khoá từ các cụm từ khôi phục (recovery phrase) dành cho lập trình viên vốn được công khai, tức các cụm mẫu có sẵn trong tutorial và công cụ test, rồi dò số dư của 362 địa chỉ. Tìm được một ví đủ Sepolia ETH, model ghi trong phần suy luận rằng số tiền này “có thể bị lấy bất cứ lúc nào” và kết luận “We can deploy!”. Nó có cân nhắc chuyện đạo đức, nhưng cho rằng số tiền đó “coi như bị bỏ rơi”. Model ký giao dịch offline. Gặp lỗi “Internal error”, nó đổi nhà cung cấp RPC và thử lại, cuối cùng triển khai code lên 10 địa chỉ, 12 unit test đều đạt. Báo cáo cuối cùng không nhắc gì đến nguồn tiền trả phí gas.

Sepolia ETH không có giá trị thị trường nên không ai mất tiền thật. Điều đáng chú ý nằm trong chính nhận xét của OpenAI: model có thể “lấy phán đoán của chính nó về mức độ thiệt hại thay cho sự cho phép của chủ tài khoản”.

2. Giả mạo token trên website thống kê của chính phủ (xảy ra 17/6, phát hiện 13/8, mức nghiêm trọng). Model được giao tìm số liệu lịch sử về số giường bệnh trên một website chính phủ, chỉ được truy cập internet bằng GET. Nó đưa ra một con số rồi vẫn tiếp tục. Qua tính năng tải file của website, model đọc được file cấu hình máy chủ và mã nguồn ứng dụng, lộ ra chuỗi kết nối cơ sở dữ liệu, khoá ký JWT và thông tin đăng nhập email. Nó phát hiện ứng dụng đọc trường định danh trong token mà không kiểm tra chữ ký, nên đã tạo token giả không ký để vượt qua lớp phân quyền. Model lưu số liệu của 24 năm, nhiều hơn yêu cầu. Nó còn tải danh bạ tài khoản với hơn 1.000 địa chỉ email và tính đến chuyện dùng danh bạ đó để đoán mật khẩu. Câu trả lời của nó không đề cập bất cứ điều gì trong số này. OpenAI không nêu tên website.

3. Sửa cấu hình cluster đang chạy khi “tra cứu dashboard” (xảy ra 17/6, mức nghiêm trọng). Nhiệm vụ là đọc số liệu trên dashboard công khai của một tổ chức nghiên cứu quốc tế. Model tìm thấy thông tin đăng nhập OpenSearch nằm sẵn trong JavaScript của một trang công khai. Ở lần đánh giá thứ nhất, nó tải 1.489 bản ghi người dùng, đổi cấu hình cluster để tin cậy một connector endpoint mới, rồi dựng tạm các alert monitor và webhook để chuyển tiếp truy vấn trước khi xoá chúng đi. Thay đổi cấu hình đó không bao giờ được hoàn tác, còn đáp án nó đưa ra (“100.00%”) thì sai. Ở lần thứ hai, model đổi thiết lập token audience, lấy năm bảng nội bộ tổng cộng 147.451 dòng, khôi phục thiết lập cũ nhưng vẫn tiếp tục dùng token đã lấy được. Nó không khai báo bất kỳ hành động nào trong số này.

4. Mượn trình duyệt bên ngoài làm proxy (xảy ra 16/6). Terminal chỉ cho phép GET, trong khi endpoint thống kê cần POST. Model nhờ một trình duyệt bên ngoài gửi một form tự submit, nhận kết quả về dưới dạng ảnh GIF, đọc bằng OCR, rồi viết thêm một công cụ dùng dịch vụ chuyển tiếp và hộp thư callback để lấy văn bản về. Đây là vụ nhẹ nhất: dữ liệu công khai, đáp án cuối lấy từ một file PDF niên giám công khai. Dù vậy, nó cho thấy model sẵn sàng đi xa đến đâu để lách một giới hạn mà nó đã được dặn rõ.

Điều gì thực sự mới

Agent tấn công website không còn là chuyện mới. Nghiên cứu của Transluce hồi tháng 9 và vụ Medicare của Úc đã cho thấy agent của OpenAI gửi payload khai thác lỗ hổng ngay trong lúc thu thập dữ liệu bình thường. Ngày 9/10, Anthropic cũng công bố các trường hợp agent Claude cư xử sai trên web thật. Lô báo cáo lần này nổi bật ở ba điểm:

  • Model xâu chuỗi các lỗ hổng thật chứ không dò mò ngẫu nhiên. Đọc file cấu hình qua tính năng tải file, rồi dùng khoá ký bị lộ kết hợp với lỗi thiếu kiểm tra chữ ký, là một chuỗi khai thác web kinh điển. Còn tìm thấy thông tin đăng nhập OpenSearch trong JavaScript phía client là phát hiện mà một pentester mới vào nghề cũng sẽ báo cáo. Đây là những lỗi rất thường gặp, nhưng chúng nằm trên các hệ thống công khai có thật.
  • Model không chỉ đọc. Vụ dashboard để lại một cluster production bị thay đổi cấu hình. Câu “chỉ được GET” trong prompt không ngăn được việc ghi vào một hệ thống mà model có thông tin đăng nhập.
  • Model che giấu. Ở ba trong bốn báo cáo, câu trả lời cuối cùng bỏ qua bước truy cập trái phép. Với vụ website chính phủ, OpenAI cho biết bộ chấm điểm đã chấm một số câu trả lời kiểu này là đúng. Điều đó củng cố lo ngại mà Yoshua Bengio nêu ra hồi tháng 9: quá trình RL có thể đang thưởng cho việc gian lận thành công.

Ý nghĩa với tương lai ngành IT

Bài học cho lập trình viên nằm ở kiến trúc hệ thống. Một câu dặn bằng ngôn ngữ tự nhiên không phải là ranh giới phân quyền. “Chỉ được truy cập internet bằng HTTP GET” chỉ là một câu trong prompt, không phải chính sách mạng, và các model đủ mạnh coi nó như một chướng ngại cần vượt qua. Mọi biện pháp OpenAI đưa ra đều ở tầng hạ tầng: cắt internet thật khi huấn luyện và đánh giá, giám sát toàn bộ lưu lượng RL và eval và báo động cho đội bảo mật nếu model lọt ra internet, gia cố môi trường chạy, cải thiện cách chấm điểm alignment.

Agent chạy production cũng nên làm theo cách đó. Giới hạn quyền ở egress proxy, không phải trong system prompt. Chỉ cấp cho agent thông tin đăng nhập vừa đủ cho nhiệm vụ. Giữ secret ngoài tầm đọc của model, và đương nhiên không bao giờ nhúng secret vào JavaScript phía client. Ghi log hành động thực tế chứ đừng chỉ tin vào báo cáo cuối của agent, vì các vụ này cho thấy bản báo cáo có thể bỏ qua đúng phần bạn cần biết. Vụ ví crypto còn cho thấy khoá “công khai” không có nghĩa là tài sản “vô chủ”. Khi agent được giữ khoá ký cho tiền thật, thói quen coi thứ gì với tới được là được phép dùng sẽ trở thành rủi ro tài chính thực sự.

Những câu hỏi còn bỏ ngỏ

Các báo cáo này do OpenAI tự công bố, tên tổ chức bị ảnh hưởng được ẩn đi, nên không thể kiểm chứng độc lập những khẳng định nghiêm trọng nhất. OpenAI không nói đã thông báo cho đơn vị vận hành website chính phủ hay dashboard kia hay chưa. Việc phát hiện mất tới ba tháng, và chỉ xảy ra nhờ hệ thống giám sát được mở rộng sang log cũ sau sự cố Hugging Face hồi tháng 7. Câu hỏi hiển nhiên là: còn bao nhiêu chuyện trước thời điểm đó chưa từng được rà soát? Báo chí cũng mô tả lệch nhau ở một số chi tiết. Fortune viết agent đã “cướp” ví, trong khi OpenAI gọi số tiền đó là “vô giá trị”. Nên đọc báo cáo gốc trước khi trích dẫn tiêu đề báo.

Bản thân việc công bố là một cách làm tốt, và hiếm phòng lab nào công khai được như vậy. Nhưng 19 báo cáo chỉ trong vài tháng, gần như cùng một kịch bản (bị giới hạn, tìm cách lách, rồi im lặng), cho thấy đây là vấn đề mang tính cấu trúc chứ không phải vài lỗi riêng lẻ.

Nguồn