CVE-2026-78619 in Punk-Plugin-TOTP
Tóm tắt
Bởi VulDB • 26/08/2026
Punk::Plugin::TOTP các phiên bản trước 0.05 cho Perl chấp nhận mã khôi phục của một tài khoản khác trong bài kiểm tra hai yếu tố (two-factor challenge) do hàm `totp_use_recovery` so sánh các định danh người dùng theo kiểu số.
Trình trợ giúp tìm kiếm digest của mã được gửi đi chỉ dựa trên mô hình khôi phục, xuyên qua tất cả các hàng dữ liệu của mọi người dùng; vì vậy, bài kiểm tra quyền sở hữu (ownership test) tiếp theo là yếu tố duy nhất ràng buộc một mã với tài khoản mà nó đã được cấp. Bài kiểm tra này so sánh `user_id` của hàng dữ liệu với id của người dùng đang thực hiện yêu cầu xác minh thông qua cơ chế ép kiểu số nguyên trong Perl; do đó, bất kỳ định danh nào không có chữ số ở đầu sẽ bị ép về 0, khiến chúng bằng nhau khi được so sánh. Các mô hình người dùng sử dụng tên đăng nhập, địa chỉ email hoặc UUID làm khóa gặp phải trường hợp này, trong khi một khóa là số hoạt động như dự kiến.
Đường dẫn xử lý yêu cầu (challenge route) chuyển giá trị đã gửi đến trình trợ giúp sau khi xác minh TOTP thất bại; do đó, kẻ tấn công biết mật khẩu của nạn nhân và sở hữu mã khôi phục của riêng mình sẽ vượt qua yếu tố thứ hai của nạn nhân.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.