-
09/04/2020
-
116
-
1.196 bài viết
Lỗ hổng Better Auth cho phép tạo API key đặc quyền mà không cần xác thực
Một lỗ hổng nghiêm trọng trong plugin API keys của thư viện Better Auth, một framework xác thực phổ biến viết bằng TypeScript, cho phép kẻ tấn công tạo ra các thông tin xác thực với quyền cao cho bất kỳ người dùng nào mà không cần xác thực. Lỗ hổng này được ghi nhận là CVE-2025-61928 và ảnh hưởng tới nhiều bản triển khai Better Auth, hiện được tải xuống khoảng 300.000 lần mỗi tuần trên npm.
Nguyên nhân của sự cố nằm ở cách plugin xử lý yêu cầu tạo API key: hàm createApiKey thường lấy ngữ cảnh người dùng từ phiên đăng nhập để thực hiện các kiểm tra bảo mật cần thiết. Tuy nhiên, trong một luồng xử lý lỗi, nếu yêu cầu không kèm phiên nhưng nội dung lại chứa trường userId, mã nguồn sẽ đặt cờ authRequired về false và bỏ qua các bước xác thực then chốt. Kết quả là hệ thống có thể tạo ra một đối tượng người dùng dựa trên dữ liệu do phía khách cung cấp, thay vì dựa trên phiên đã xác thực.
Khi khai thác, kẻ tấn công chỉ cần gửi yêu cầu POST tới endpoint /api/auth/api-key/create kèm ID người dùng mục tiêu, tên và các trường tùy chọn có thể chứa thiết lập quyền cao như rate limit hay permission. Hệ thống sau đó trả về một API key hợp lệ gắn với tài khoản nạn nhân, qua đó vượt qua các cơ chế bảo vệ như xác thực đa yếu tố và mở cửa cho các chiếm quyền tự động. Cùng một lỗ hổng logic cũng tồn tại ở các endpoint cập nhật, làm tăng rủi ro khi API key có thể bị sửa đổi hoặc gia hạn từ xa.
Mức độ nguy hiểm củaCVE-2025-61928 càng tăng do vai trò đặc biệt của API key trong các quy trình tự động. Những khóa này thường mang quyền truy cập lâu dài và đặc quyền cao, phục vụ các tác vụ máy-máy. Khi bị lạm dụng, chúng có thể giúp kẻ tấn công giả mạo người dùng, truy cập dữ liệu nhạy cảm hoặc thực hiện các hành động tự động trên hệ thống, từ đó gây thiệt hại lớn cho ứng dụng và dịch vụ có liên quan.
Mặc dù CVE-2025-61928 chỉ ảnh hưởng đến các hệ thống sử dụng plugin API keys, phạm vi rủi ro vẫn rất đáng kể do Better Auth được sử dụng rộng rãi trong cộng đồng phát triển. Phát hiện này được nhóm ZeroPath công bố sau khi họ phát hiện lỗi trong quá trình quét các gói phụ thuộc bên thứ ba. Sự việc cho thấy các thư viện xác thực, vốn là nền tảng của nhiều ứng dụng, có thể trở thành điểm yếu nếu xảy ra sai sót trong cơ chế kiểm tra quyền.
Để khắc phục, các tổ chức cần nâng cấp ngay lên Better Auth phiên bản 1.3.26 hoặc mới hơn, trong đó vấn đề đã được sửa. Bên cạnh đó, nên thu hồi và thay thế toàn bộ API key được tạo qua plugin, vô hiệu hóa các khóa không còn sử dụng và rà soát nhật ký hệ thống để phát hiện các yêu cầu bất thường gửi tới endpoint tạo hoặc cập nhật, đặc biệt là những yêu cầu có chứa trường userId hoặc thiết lập quyền cao. Lỗ hổng được tiết lộ lần đầu vào ngày 2 tháng 10, công bố chính thức trên GitHub vào ngày 8 tháng 10 với mã advisory GHSA-99h5-pjcv-gr6v và được gán mã CVE vào ngày 9 tháng 10.
Khi khai thác, kẻ tấn công chỉ cần gửi yêu cầu POST tới endpoint /api/auth/api-key/create kèm ID người dùng mục tiêu, tên và các trường tùy chọn có thể chứa thiết lập quyền cao như rate limit hay permission. Hệ thống sau đó trả về một API key hợp lệ gắn với tài khoản nạn nhân, qua đó vượt qua các cơ chế bảo vệ như xác thực đa yếu tố và mở cửa cho các chiếm quyền tự động. Cùng một lỗ hổng logic cũng tồn tại ở các endpoint cập nhật, làm tăng rủi ro khi API key có thể bị sửa đổi hoặc gia hạn từ xa.
Mức độ nguy hiểm củaCVE-2025-61928 càng tăng do vai trò đặc biệt của API key trong các quy trình tự động. Những khóa này thường mang quyền truy cập lâu dài và đặc quyền cao, phục vụ các tác vụ máy-máy. Khi bị lạm dụng, chúng có thể giúp kẻ tấn công giả mạo người dùng, truy cập dữ liệu nhạy cảm hoặc thực hiện các hành động tự động trên hệ thống, từ đó gây thiệt hại lớn cho ứng dụng và dịch vụ có liên quan.
Mặc dù CVE-2025-61928 chỉ ảnh hưởng đến các hệ thống sử dụng plugin API keys, phạm vi rủi ro vẫn rất đáng kể do Better Auth được sử dụng rộng rãi trong cộng đồng phát triển. Phát hiện này được nhóm ZeroPath công bố sau khi họ phát hiện lỗi trong quá trình quét các gói phụ thuộc bên thứ ba. Sự việc cho thấy các thư viện xác thực, vốn là nền tảng của nhiều ứng dụng, có thể trở thành điểm yếu nếu xảy ra sai sót trong cơ chế kiểm tra quyền.
Để khắc phục, các tổ chức cần nâng cấp ngay lên Better Auth phiên bản 1.3.26 hoặc mới hơn, trong đó vấn đề đã được sửa. Bên cạnh đó, nên thu hồi và thay thế toàn bộ API key được tạo qua plugin, vô hiệu hóa các khóa không còn sử dụng và rà soát nhật ký hệ thống để phát hiện các yêu cầu bất thường gửi tới endpoint tạo hoặc cập nhật, đặc biệt là những yêu cầu có chứa trường userId hoặc thiết lập quyền cao. Lỗ hổng được tiết lộ lần đầu vào ngày 2 tháng 10, công bố chính thức trên GitHub vào ngày 8 tháng 10 với mã advisory GHSA-99h5-pjcv-gr6v và được gán mã CVE vào ngày 9 tháng 10.
Theo Cyber Security News