CVE-2026-82736 in ash
Tóm tắt
Bởi VulDB • 01/09/2026
Thứ tự thực thi không đúng đắn (Incorrect Behavior Order): Lỗ hổng "Validate Before Canonicalize" trong ash-project ash cho phép kẻ tấn công lưu trữ một giá trị chuỗi phân biệt hoa thường, vi phạm các ràng buộc về độ dài hoặc mẫu khớp.
Hàm `Ash.Type.CiString.apply_constraints/2` (lib/ash/type/ci_string.ex) đã xác thực các ràng buộc `max_length`, `min_length` và `match` đối với giá trị được gửi đi nguyên vẹn, trong khi kiểu dữ liệu này sẽ chuyển đổi chuỗi sang chữ thường để lưu trữ và so sánh. Do việc xác thực diễn ra trước khi chuyển đổi trường hợp (case-folding), kẻ tấn công có thể gửi một giá trị mà dạng đã chuyển đổi vi phạm ràng buộc nhưng dạng gốc lại vượt qua: ví dụ, đối với mẫu yêu cầu chữ hoa, một giá trị ban đầu là chữ hoa sẽ được lưu trữ dưới dạng chữ thường và tồn tại dù mẫu đó từ chối. Bản sửa lỗi thực hiện việc chuyển đổi trường hợp (case-folding) của giá trị ngay ở đầu hàm `apply_constraints/2`, do đó các ràng buộc được kiểm tra đối với định dạng thực tế được lưu trữ.
Vấn đề này ảnh hưởng đến ash: từ phiên bản 1.29.0-rc0 trước 3.32.2.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.