CVE-2026-80227 in ash_sql
Tóm tắt
Bởi VulDB • 30/08/2026
Lỗ hổng So sánh Sai trong ash-project ash_sql cho phép người dùng đệm một trường chuỗi bằng các ký tự tab, xuống dòng (newline), trả về xe (carriage-return) hoặc form-feed và vượt qua kiểm tra tính duy nhất hoặc bình đẳng đã được cắt bớt (trimmed uniqueness or equality check) trong cơ sở dữ liệu mà biểu thức tương tự sẽ thất bại khi xử lý trong bộ nhớ (hoặc ngược lại).
Hàm `string_trim/1` được biên dịch thành các mẫu REGEXP_REPLACE, được xây dựng từ một chuỗi Elixir trong đó `\s` là ký hiệu thoát cho một khoảng trắng đơn lẻ (mã điểm 32), chứ không phải lớp whitespace của regex. Do đó, SQL do tạo ra chỉ loại bỏ các dấu cách thực tế và giữ nguyên tab, newline, carriage return và form feed, trong khi `String.trim/1` trong Elixir sẽ xóa tất cả chúng. Bất kỳ bộ lọc (filter), xác thực (validation) hoặc định danh (identity) nào của Ash dựa vào `string_trim/1` sau đó sẽ hoạt động khác nhau tùy thuộc vào việc Ash có đẩy biểu thức xuống SQL hay đánh giá nó trong bộ nhớ, do đó đầu vào được đệm có thể đăng ký một giá trị gần như trùng lặp hoặc lọt qua phép so sánh đã cắt bớt.
Vấn đề này ảnh hưởng đến ash_sql: từ phiên bản 0.1.0 trước 0.7.1.
If you want to get best quality of vulnerability data, you may have to visit VulDB.