21/04/2026
Vercel vừa bị tấn công - thủ phạm là một AI tool nhỏ mà ít ai để ý
Sáng nay đọc thông báo bảo mật của Vercel mà lạnh người. Không phải vì Vercel bị hack. Mà vì cách họ bị hack.
Vercel vừa cập nhật thông báo vào hôm nay. Họ xác nhận đã phát hiện một sự cố bảo mật: có người trái phép truy cập được vào một số hệ thống nội bộ của Vercel. Họ đang điều tra, đã mời đội chuyên phản ứng sự cố bảo mật vào cuộc, đã thông báo cơ quan thực thi pháp luật. Dịch vụ vẫn chạy bình thường, chỉ một nhóm nhỏ khách hàng bị ảnh hưởng và Vercel đang liên hệ trực tiếp với từng người.
Đến đây thì bình thường. Chuyện đáng nói nằm ở phần cuối thông báo, phần IOC, tức dấu hiệu xâm nhập mà các đội bảo mật công bố để cộng đồng cùng truy vết.
Nguồn gốc sự cố không nằm ở hạ tầng Vercel. Nó đến từ một AI tool bên thứ ba nhỏ. Cái OAuth app (ứng dụng được cấp quyền truy cập qua Google) trên Google Workspace của tool đó bị xâm nhập ở quy mô rộng hơn, có thể đang ảnh hưởng tới hàng trăm người dùng thuộc nhiều tổ chức khác nhau.
Đây chính xác là cơn ác mộng chuỗi cung ứng mà ngành bảo mật cảnh báo nhiều năm nay, giờ hiện hình rõ nét trong kỷ nguyên AI: bạn có thể không làm gì sai, hệ thống của bạn có thể không có lỗ hổng nào, nhưng chỉ cần một AI tool nhỏ bạn từng bấm "Allow access to Google Workspace" cách đây vài tháng, là đủ để kẻ tấn công có đường vào.
Vercel còn công khai luôn mã định danh cụ thể (OAuth App ID) của app gây ra sự cố, mã này nằm trong thông báo bảo mật gốc của Vercel. Ai là Google Workspace Administrator hoặc chủ tài khoản Google cá nhân nên vào thông báo đó lấy mã, copy dán vào phần quản lý quyền ứng dụng bên thứ ba của Google, rà ngay xem có ai trong tổ chức/tài khoản mình từng cấp quyền cho app này không. Có thì thu hồi (revoke) lập tức.
Với ai đang dùng Vercel, thông báo khuyến nghị 6 việc phải làm ngay.
Việc 1. Mở activity log của tài khoản, xem qua dashboard hoặc qua công cụ dòng lệnh CLI, để soi dấu hiệu lạ.
Việc 2. Rà và đổi mới (rotate) toàn bộ environment variables (biến môi trường, nơi lưu API key, token, mật khẩu database, khóa ký). Chỗ này hơi kỹ: Vercel có tính năng đánh dấu biến môi trường là sensitive (nhạy cảm). Khi đã đánh dấu, giá trị đó được lưu theo cơ chế không đọc lại được, và hiện tại Vercel chưa có bằng chứng nhóm giá trị này bị truy cập. Nhưng với các biến môi trường chứa secret mà bạn CHƯA đánh dấu sensitive, phải coi như đã bị lộ và đổi mới ngay.
Việc 3. Từ giờ về sau, dùng tính năng Sensitive Environment Variables để secret không bao giờ đọc lại được.
Việc 4. Rà các deployment (lượt triển khai code lên Vercel) gần đây, tìm xem có triển khai nào bất thường hoặc trông đáng ngờ không. Nghi ngờ thì xóa luôn lượt triển khai đó.
Việc 5. Đảm bảo Deployment Protection (lớp bảo vệ triển khai, giúp chặn người lạ truy cập các bản preview) đang đặt tối thiểu ở mức Standard.
Việc 6. Đổi mới Deployment Protection tokens (các mã dùng để bypass lớp bảo vệ triển khai) nếu bạn đã từng tạo mã này.
Bài học mình rút ra cho mọi người đang build với AI:
Mỗi lần bạn cài một AI tool mới, bấm OAuth cấp quyền Google Workspace, Slack, GitHub, Notion, bạn đang mở thêm một cánh cửa. Cánh cửa đó không nằm trong phạm vi bạn kiểm soát. Nhà cung cấp tool có thể bị hack, và khi họ bị, bạn bị theo.
Việc phải làm định kỳ, không phải chỉ khi có sự cố:
Rà lại toàn bộ app đã cấp quyền OAuth trong Google Workspace, Slack, GitHub, Notion…. Cái nào không còn dùng thì thu hồi quyền ngay. Đừng để app từ 2 năm trước vẫn còn toàn quyền.
Secret phải được quản lý đúng cách: dùng vault (két bảo mật chuyên dụng), đánh dấu sensitive, đổi mới định kỳ. Đừng để trần trong biến môi trường.
Nhật ký hoạt động không phải để cho có. Mỗi tuần dành 10 phút soi qua cũng đủ phát hiện nhiều thứ.
Sự cố Vercel lần này nhẹ vì họ phản ứng nhanh và minh bạch. Nhưng công thức thì đã rõ: AI tool nhỏ + OAuth cấp quyền rộng + không ai rà lại = chuỗi cung ứng thủng.
Trong thế giới ai cũng dùng 20 đến 30 AI tool, câu hỏi không còn là "có bị không" mà là "khi bị, bạn biết kịp không".