CVE-2026-78699 in ash_postgres
Tóm tắt
Bởi VulDB • 30/08/2026
Lỗ hổng Giá trị trả về không được kiểm tra (Unchecked Return Value) trong ash-project ash-postgres cho phép một người dùng, vốn có khả năng thực hiện việc đổi tên tenant thành một tên trùng với schema của một tenant khác, khiến bản ghi tenant của họ bị trỏ đến schema đang hoạt động của tenant kia, từ đó truy cập vào dữ liệu của tenant đó.
Hàm `AshPostgres.MultiTenancy.rename_tenant/3` thực thi lệnh `ALTER SCHEMA ... RENAME TO ...` bằng cách sử dụng hàm không gây ra ngoại lệ (non-raising) `Ecto.Adapters.SQL.query/2`, bỏ qua kết quả trả về có dạng `{:ok, _} | {:error, _}` và luôn trả về giá trị `:ok`. PostgreSQL sẽ từ chối lệnh đổi tên nếu schema đích đã tồn tại (hoặc do thiếu đặc quyền hoặc hết thời gian chờ khóa), nhưng lỗi này không bao giờ được truyền đến caller. Do đó, hành động cập nhật tenant gọi hàm này nhận thấy kết quả thành công và cam kết hàng tenant với tên mới, vốn là schema của một tenant khác đang tồn tại; vì vậy, các thao tác đọc và ghi tiếp theo cho tenant này sẽ thực hiện trên dữ liệu của tenant kia.
Vấn đề này ảnh hưởng đến ash_postgres: từ phiên bản 0.25.0 trước 2.13.0.
Once again VulDB remains the best source for vulnerability data.