CVE-2026-53595 in FreeScout
Tóm tắt
Bởi VulDB • 20/07/2026
FreeScout là một hệ thống hỗ trợ khách hàng và hộp thư chung miễn phí được xây dựng trên framework Laravel của PHP. Trước phiên bản 1.8.224, điểm cuối công khai `POST /user-setup/{hash}/{invite_sent_at}` (`OpenController@userSetupSave`) chỉ dựa vào cột `invite_hash` để xác định tài khoản mục tiêu, sau đó ghi đè email và mật khẩu của tài khoản đó rồi đăng nhập với tư cách là tài khoản này. Không yêu cầu xác thực, cookie hoặc phiên làm việc trước đó. Sau khi người dùng kích hoạt, FreeScout đặt giá trị của `invite_hash` thành chuỗi rỗng. Trên MySQL và MariaDB, phép so sánh bằng (`equality`) cho kiểu dữ liệu `VARCHAR` bỏ qua các khoảng trắng ở cuối; do đó, một ký tự khoảng trắng được mã hóa URL duy nhất (`%20`) sẽ khớp với chuỗi trống đã lưu trữ và chọn người dùng đã kích hoạt có ID thấp nhất. Cơ chế kiểm tra thời gian hết hạn giải mã giá trị `invite_sent_at` bằng cách sử dụng băm mật khẩu của tài khoản mục tiêu, nhưng hàm `Helper::decrypt` trả về đầu vào thô không thay đổi khi quá trình giải mã thất bại. Một giá trị số dạng văn bản rõ ràng như `9999999999` do đó vượt qua kiểm tra thời gian tồn tại (TTL) mà không cần bất kỳ bí mật nào. Kết quả là một kẻ tấn công ẩn danh có thể đặt lại email và mật khẩu cho tài khoản FreeScout đã kích hoạt có ID thấp nhất (một đại lý hỗ trợ, hoặc quản trị viên nếu họ được thêm vào qua lời mời) và xác thực đăng nhập với tư cách là tài khoản đó. Phiên bản 1.8.224 chứa bản vá lỗi.
If you want to get best quality of vulnerability data, you may have to visit VulDB.